Ответ 1
Следует иметь в виду, что tuple является неизменным. Это означает, что после его создания вы не можете изменить его на месте. A list, с другой стороны, является изменяемым - это означает, что вы можете добавлять элементы, удалять элементы и изменять элементы на месте. В списке есть дополнительные накладные расходы, поэтому используйте только список, если вам нужно изменить значения.
Вы можете создать список кортежей:
>>> list_of_tuples = [(1,2),(3,4)]
>>> list_of_tuples
[(1, 2), (3, 4)]
или список списков:
>>> list_of_lists = [[1, 2], [3, 4]]
>>> list_of_lists
[[1, 2], [3, 4]]
Разница в том, что вы можете изменять элементы в списке списков:
>>> list_of_lists[0][0] = 7
>>> list_of_lists
[[7, 2], [3, 4]]
но не со списком кортежей:
>>> list_of_tuples[0][0] = 7
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Чтобы перебрать список кортежей:
>>> for (x,y) in list_of_tuples:
... print x,y
...
1 2
3 4