跳到主要内容

Python数据读取

map接收同一行的多个元素

下面这段代码是Python语言的代码。它使用了Python内置函数map(),将输入的字符串转换为浮点数, 并将它们分别赋值给变量abc。 其中,map()函数的第一个参数是float,表示将输入的字符串转换为浮点数。 第二个参数是input().split(),表示从标准输入中读取一行字符串,然后将其按照空格分割成多个字符串,返回一个字符串列表。 map()函数将第一个参数应用于第二个参数中的每个元素,返回一个新的迭代器对象, 其中包含了每次函数调用的返回值。 在这个例子中,map()函数返回一个****迭代器对象****,其中包含了三个浮点数, 分别对应于输入字符串中的三个数字。这三个浮点数分别被赋值给变量abc

a, b, c = map(float, input().split())

读取一行数据和不同行数据: 同一行输入用map,不同行输入用多个input()

a, b, c = map(int, input().split())
x = int(input())
y = float(input())

接收数组

用循环或者list(_)接收,不能直接用map函数接收,map函数前面只有一个参数的时候 map函数会返回地址给这个参数 如果map函数前面有以逗号分隔的多个参数,map函数会将读取的数据分配给这些参数

# 单行数组读取
x = list(map(int, input().split()))

# 一行一行数据输入数组,结果是一个二维数组
a = []
for i in range(12):
row = list(map(float, input().split()))
a.append(row)

# 多行数据输入数组
a = []
for i in range(100):
x = float(input())
a.append(x)

数据量+数组的形式的接收

下面这个语句是将输入的第一个数据单独分配给一个变量,剩下的变为一个数组

N, *nums = map(int, input().split())

是一个Python语句,它使用解构赋值(destructuring assignment)的语法。 这个语句的意思是将 map() 函数的结果(一个整数列表)分配给变量 N 和 nums。 其中,N 是列表的第一个元素,nums 是列表的其余部分(一个列表)。 * 符号在这里的作用是收集所有剩余的值到一个列表中。 例如,如果用户输入的是 “3 1 2 3”,那么 N 的值将会是 3,nums 的值将会是 [1, 2, 3]。 这是因为 map(int, input().split()) 的结果是 [3, 1, 2, 3],然后这个列表被分配给 N 和 nums。

# 输入整数个数和整数序列
N, *nums = map(int, input().split())
# N是列表中的第一个元素,也就是用户输入的第一个值
# nums是除了用户输入的第一个值之外的其他数字组成的列表