【问题标题】:Use split for define a list of words使用 split 定义单词列表
【发布时间】:2017-04-02 10:49:03
【问题描述】:

我可以用这个方法吗?

fields = 'id name legal_address inn'.split()

我认为它看起来比:

fields = ['id', 'name', 'legal_address', 'inn']

【问题讨论】:

  • “最可靠”是什么意思?
  • 您拥有的第一行代码会生成最后一行。最后一行是每个list 出现的唯一一行。第二种是定义tuple 的懒惰方式,这会导致混淆,最后第三种是定义tuple 的正确方式。所以对我来说唯一有意义的问题是“我的字符串的列表或元组?”答案是“这取决于你想用它做什么”。元组是不可变的,列表不是。
  • 让我们停止对新用户不友好并停止投票,当我第一次学习 Python 时,我没有认识到列表和元组之间的语法差异。第一次对我们每个人来说都是全新的。

标签: python list syntax


【解决方案1】:

正如@EvKounis 所说,#1 和#4 都创建了一个列表,#1 通过拆分字符串,而#4 通过直接实例化列表:

fields = 'id name legal_address inn'.split()   # 1
fields = ['id', 'name', 'legal_address', 'inn']  # 4

而这两个创建元组

fields = 'id', 'name', 'legal_address', 'inn'  # 2
fields = ('id', 'name', 'legal_address', 'inn')  # 3

(元组不能修改,它是“不可变的”。它是与List一起的另一种Sequence类型。建议您快速阅读Python Tutorial on Lists5.1 More on Lists .. 5.3 5.3. Tuples and Sequences

(有时您可能会看到另一个创建列表的同义词,使用 list(...) 关键字;这与在 #4 中使用 [...] 实例化它基本相同。通常我们会使用 #4 来代替:

fields = list('id', 'name', 'legal_address', 'inn') # call this #4b

至于哪一个是“最确定的”,#1、#4,4b:#4,4b都允许你直接定义列表; #1 从字符串内容定义它。

【讨论】:

    【解决方案2】:

    这是“最可靠的”:

    fields = ['id', 'name', 'legal_address', 'inn']
    

    这会创建一个列表并生成第一个列表:

    fields = 'id name legal_address inn'.split()
    

    这是一个无表情的元组:

    fields = 'id', 'name', 'legal_address', 'inn'
    

    这是一个用括号括起来的元组:

    fields = ('id', 'name', 'legal_address', 'inn')
    

    【讨论】:

      【解决方案3】:

      单词列表:

      fields = ['id', 'name', 'legal_address', 'inn']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-29
        • 2014-08-26
        • 2022-01-25
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        相关资源
        最近更新 更多