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

发布于 2021-01-29 15:25:52

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

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

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

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    变更:

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看