为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

人到中年有点甜 2019-12-27 10:33:13
我很好奇为什么在Python中列表中的尾部逗号是有效的语法,并且似乎Python只是忽略了它:>>> ['a','b',]['a', 'b']自从('a')和('a',)是两个元组时,它是一个有意义的元组,但是在列表中呢?
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

主要优点是,它使多行列表更易于编辑,并减少了差异。


变更:


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']而不是预期的结果。


查看完整回答
反对 回复 2019-12-27
?
繁花如伊

TA贡献2012条经验 获得超12个赞

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


查看完整回答
反对 回复 2019-12-27
?
临摹微笑

TA贡献1982条经验 获得超2个赞

它有助于消除某种错误。有时在多行上写列表会更清晰。但是在以后的维护中,您可能需要重新排列项目。


l1 = [

        1,

        2,

        3,

        4,

        5

]


# Now you want to rearrange


l1 = [

        1,

        2,

        3,

        5

        4,

]


# Now you have an error

但是,如果允许使用尾随逗号,则可以轻松地重新排列行而不会引起错误。


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信