Зачем в кортежах в конце ставят запятую?

В Python часто кортежи объявляются как:

some_tuple = (
    val1,
    val2,
    val3,
)

Слышал, что не оставлять запятую в конце (после val3) считается плохой практикой. Для чего это делается?


Ответы (2 шт):

Автор решения: rotabor

Всё очень банально - это для удобства вставки или удаления элементов строками.

→ Ссылка
Автор решения: CrazyElf

Вообще-то и списки можно так же объявлять.

lst = [
    1,
    2,
    3,
]

И я считаю проставление "запасной" запятой хорошей практикой. По нескольким причинам:

  1. Однообразие - все строчки в коллекции равноправны, их можно легко поменять местами или скопировать из другой коллекции, и не нужно думать, где при этом убрать запятую, а где добавить. Ставь запятую в конце каждой строчки, а Питон сам разберётся, какие запятые нужны, а какие нет.
lst = [
    2,
    42,
    3,
    1,
]
  1. Не будет проблемы, если это кортеж, вы удалили из него все элементы кроме последнего, забыли в конце добавить запятую, и это перестало быть кортежем. Если запятая есть в каждой строке, то удаляй любые строки, кортеж всё-равно сохранится.
# это не кортеж с одним элементом 3, а просто значение 3
some_tuple = (
    3
)
  1. Не будет проблемы с забытой запятой в коллекции строк (соседние строки в случае отсутствия запятой склеятся, а элементов в коллекции будет на 1 меньше, чем можно ожидать).
# тут две строки, а не три: "1" и "32"
strings = [
    "1",
    "3"
    "2",
]
→ Ссылка