In Python, you might have stumbled across lists ending with a trailing comma. Surprisingly, Python allows it, considering it as a valid syntax:
python> ["banana", "apple", "pear",]
["banana", "apple", "pear"]
There are multiple advantages adopting this convention. Ending your Python list with a trailing comma makes the list easier to edit – reducing the clutter in the git diff
outcome – and makes future changes (e.g. adding an item to the list) less error-prone.
Reducing git diff clutter
Especially when your list is multi-lines, having a trailing comma makes the list easier to edit, reducing the clutter in the git diff
outcome your version control framework presents to you.
Changing the following list:
names = [
"Charles de Gaulle",
"Antoine de Saint-Exupéry",
]
to:
names = [
"Charles de Gaulle",
"Antoine de Saint-Exupéry",
"Bernard Clavel",
]
only involves a one-line change:
names = [
"Charles de Gaulle",
"Antoine de Saint-Exupéry",
+ "Bernard Clavel",
]
versus a confusing 3 multi-lines difference git output otherwise:
names = [
"Charles de Gaulle",
- "Antoine de Saint-Exupéry"
+ "Antoine de Saint-Exupéry",
+ "Bernard Clavel"
]
No more breaking changes
Another advantage of having trailing commas in your Python lists is that it makes changes less error-prone (with the risk of missing a comma when adding a new item into the list):
names = [
"Charles de Gaulle",
"Antoine de Saint-Exupéry"
"Bernard Clavel"
]
Note: the above list is syntactically valid but will not return the expected outcome. Instead, it will trigger an implicit string literal concatenation.
['Charles de Gaulle', 'Antoine de Saint-ExupéryBernard Clavel']