我在从 zip 命令中获取预期结果时遇到一些问题。情况 1-3 是有道理的,但在情况 4 和 5 中(我认为它们是等效的?)我期望结果为 [['a'],['b'],['c'],['d' ]],而是将整个第二个列表附加到我初始化的列表列表的每个子列表中。
Case 1:
>>> for a in zip([1,2,3,4],['a','b','c','d']):
... print a
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
Case 2:
>>> for (a,b) in zip([1,2,3,4],['a','b','c','d']):
... print a,b
...
1 a
2 b
3 c
4 d
Case 3:
>>> temp = [[]] * 4
>>> for (a,b) in zip([0,1,2,3],['a','b','c','d']):
... temp[a] = b
...
>>> temp
['a', 'b', 'c', 'd']
Case 4:
>>> temp = [[]] * 4
>>> for (a,b) in zip([0,1,2,3],['a','b','c','d']):
... temp[a].append(b)
...
>>> temp
[['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd']]
Case 5:
>>> temp = [[]] * 4
>>> for a,b in zip([0,1,2,3],['a','b','c','d']):
... temp[a].append(b)
...
>>> temp
[['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd']]