为什么列表中允许尾随逗号?

我很好奇为什么在Python中列表中的尾部逗号是有效的语法,并且似乎Python只是忽略了它:


>>> ['a','b',]

['a', 'b']

自从('a')和('a',)是两个元组时,它是一个有意义的元组,但是在列表中呢?


人到中年有点甜
浏览 411回答 3
3回答

噜噜哒

主要优点是,它使多行列表更易于编辑,并减少了差异。变更: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']而不是预期的结果。

繁花如伊

这是一种常见的语法约定,允许在数组中尾随逗号,C和Java之类的语言允许这样做,并且Python似乎已对其列表数据结构采用了该约定。在生成用于填充列表的代码时,它特别有用:只需生成一系列元素和逗号,而无需将最后一个元素视为特殊情况,并且不应该以逗号结尾。

临摹微笑

它有助于消除某种错误。有时在多行上写列表会更清晰。但是在以后的维护中,您可能需要重新排列项目。l1 = [        1,        2,        3,        4,        5]# Now you want to rearrangel1 = [        1,        2,        3,        5        4,]# Now you have an error但是,如果允许使用尾随逗号,则可以轻松地重新排列行而不会引起错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python