python map()函数
map(function, iterable, …)
菜鸟解释:
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
第一个function参数是函数名,之后的iterable参数依次对应了function的参数,具体例子如下
例子
def add(x, y, z):
return x + y + z
list( map(add, [1, 2, 3], [1, 2, 3], [1, 2, 3]) )
第一个参数add函数。add函数中有三个参数,所以map中iterable参数给了三个列表[1, 2, 3]。map就依次计算了1+1+1,2+2+2,3+3+3。
最后转list, 输出为 [3, 6, 9]
复杂一点
row = 3
X = np.array([list(map(int, input().split())) for _ in range(row)])
这是我读代码遇到的。
首先拆开去掉np.array( ),先看列表[list(map(int, input().split())) for _ in range(row)],就是一个列表推导式;再拆去掉for _ in range(row),list(map(int, input().split()))。再拆去掉list(),剩下map(int, input().split()),明显,int是转换函数,input().split()则是把输入的数字通过空格分割。再推回去,分割后的数字是字符串,map(int, input().split())把字符串转成int类型,list(map(int, input().split()))把map转换成list类型,上述过程重复row次,最后np.array( )转换成numpy数组。谢谢!