По сути, чтобы создать кортеж, вы просто пишете значения, разделенные запятыми:
1, 2, 3
. Пока что все понятно. А как насчет кортежа, содержащего только один элемент? Вы просто добавляете завершающую запятую к единственному значению: 1,
. Это выглядит несколько некрасиво и может быть подвержено ошибкам, но логика понятна.А как насчет пустого кортежа? Это просто запятая? Нет, это
()
. Значит ли это, что круглые скобки создают кортеж так же, как и запятые? Нет, это не так. (4)
— это не кортеж, это просто 4
.Пример:
a = [
(1, 2, 3),
(1, 2),
(1),
(),
]
[type(x) for x in a]
# Результат: [tuple, tuple, int, tuple]
Чтобы все стало еще более запутанным, литералы кортежей часто требуют дополнительных круглых скобок. Если вы хотите, чтобы кортеж был единственным аргументом функции, то
f(1, 2, 3)
не сработает по очевидной причине — вместо этого нужно написать f((1, 2, 3))
.👉 @BookPython