У меня проблемы с получением ожидаемых результатов из команды zip. Случаи 1-3 имеют смысл, но в случаях 4 и 5 (которые я предполагаю эквивалентны?) Я ожидаю, что результаты будут [['a'], ['b'], ['c'], ['d' ]], но вместо этого весь второй список добавляется к каждому подсписку списка списков, которые я инициализирую.
Дело 1:
>>> for a in zip([1,2,3,4],['a','b','c','d']):
... print a
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
Случай 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
Дело 3:
>>> temp = [[]] * 4
>>> for (a,b) in zip([0,1,2,3],['a','b','c','d']):
... temp[a] = b
...
>>> temp
['a', 'b', 'c', 'd']
Дело 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']]
Дело 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']]