2017-10-11 62 views
1
a = [[1, 1], [0, 0], [1, 1]] 
b = [[2, 2], [3, 3], [4, 4]] 

def zippy(*args): 
    return list(zip(args)) 

print(zippy(a, b)) 
>>> [([[1, 1], [0, 0], [1, 1]],), ([[2, 2], [3, 3], [4, 4]],)] 

print(list(zip(a, b))) 
>>> [([1, 1], [2, 2]), ([0, 0], [3, 3]), ([1, 1], [4, 4])] 

有人請向我解釋爲什麼我沒有得到完全相同的輸出。因爲該函數返回正在打印的內容,所以print(list(zip(a, b)))返回與print(zippy(a, b))相同的結果,即list(zip(a, b))如何編寫一個像列表(zip(...))一樣工作的函數?

回答

9

args是包含傳遞參數的元組。你應該解壓使用「圖示」運營商等等zip作品上的元組(參數)的項目,而不是args本身:

def zippy(*args): 
    return list(zip(*args)) 
#     ^
+0

救過我的命......學到新的東西。謝謝! – KomeilR

相關問題