>>> list(map(list,zip(*[[1,2,3],[4,5,6]])))
[[1, 4], [2, 5], [3, 6]]
uj5u.com熱心網友回復:
1. 最里面的 zip( *[[1,2,3], [4,5,6]] ) 等價于 zip( [1, 2, 3], [4, 5, 6]), 即, *號把 一個串列里的元素提出來了2. zip ( ) 函式 是把兩個串列 逐個對應起來重新組合,zip翻譯過來就是拉鏈,就像 衣服的拉鏈一樣把兩組資料 捏在一起
3. map() 是把第一個函式(這里是 list) 作用于第二個引數中 的每一項,這里就是 zip組合的每一個物件。 相當于 [list([1, 4]), list[2, 5], list[3, 6]] ,
4. 用map函式形成的是 map物件, 所以最外面用的是 list( ) 函式把 map物件轉換為串列
你的代碼等價于:
a = [1, 2, 3]
b = [4, 5, 6]
result = []
for i in range(len(a)):
temp = [a[i], b[i]]
result.append(temp)
print(result)
uj5u.com熱心網友回復:
*是解綁,就是說*[[1,2,3],[4,5,6]]等價于[1, 2, 3] [4, 5, 6]zip() 函式用于將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組,然后回傳由這些元組組成的物件
map() 會根據提供的函式對指定序列做映射
所以這里map的函式就是把zip打包的元組轉化為list串列。于是經zip打包的(1,4)(2,5)(3,6)變成了[1,4][2,5][3,6]。最后使用 list() 轉換來輸出列[[1,4][2,5][3,6]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/207324.html
上一篇:Numpy中的陣列點積
