我能理解zip()
功能是用於構建元組的列表如下:Returing元組的鍵列表和值
x = ['a', 'b', 'c']
y = ['x', 'y', 'z', 'l']
lstTupA = zip(x,y)
lstTupA
將[('a', 'x'), ('b', 'y'), ('c', 'z')]
。
lstA, lstB = zip(*lstTupA)
上述操作中的元組的元組中的至lstB
列表中的列表,以lstA
和values
提取keys
。
lstA
是('a', 'b', 'c')
和lstB
是('x', 'y', 'z')
。
我的查詢是這樣的:爲什麼lstA
和lstB
元組而不是列表? a
,b
和c
是同質的,因此是x
,y
和z
。將它們分組爲元組是不合邏輯的,是嗎?
理想lstA, lstB = zip(*lstTupA)
應該分配給['a', 'b', 'c']
和lstA
到['x', 'y', 'z']
lstB
(名單)吧?
有人請澄清!
謝謝。
「爲什麼元組返回函數返回元組? - 有點奇怪的問題。我認爲你可能是需要澄清的人。 – MattH 2011-03-15 12:54:47
'zip'總是返回一個元組列表,沒有什麼意外的。做'lstA,lstB = zip(..)'只是吃外面的列表,它被稱爲序列解包。 – 2011-03-15 13:49:48
@MattH - 是的,這是最終必須回答的問題! – bdhar 2011-03-15 13:52:15