为什么列表中允许尾随逗号?
我很好奇为什么在Python中列表中的尾部逗号是有效的语法,并且似乎Python只是忽略了它:
>>> ['a','b',]
['a', 'b']
自从('a')
和('a',)
是两个元组时,它是一个有意义的元组,但是在列表中呢?
-
主要优点是,它使多行列表更易于编辑,并减少了差异。
变更:
s = ['manny', 'mo', 'jack', ]
至:
s = ['manny', 'mo', 'jack', 'roger', ]
仅涉及差异的单行更改:
s = ['manny', 'mo', 'jack', + 'roger', ]
当省略尾部逗号时,这击败了更令人困惑的多行差异:
s = ['manny', 'mo', - 'jack' + 'jack', + 'roger' ]
后面的差异使得很难看到仅添加了一行,而另一行没有更改内容。
它还降低了这样做的风险:
s = ['manny', 'mo', 'jack' 'roger' # Added this line, but forgot to add a comma on the previous line ]
并触发隐式字符串文字串联,产生
s = ['manny', 'mo', 'jackroger']
而不是预期的结果。