python – 为什么列表中允许使用尾随逗号?

我很好奇为什么在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
]

并触发implicit string literal concatenation,产生s = [‘manny’,’mo’,’jackroger’]而不是预期的结果.

上一篇:python – 为什么不分配给空列表(例如[] =“”)错误?


下一篇:javascript中点符号和括号表示法之间的区别