【问题标题】:How to append multiple values to a list in Python如何在 Python 中将多个值附加到列表中
【发布时间】:2013-12-10 08:40:19
【问题描述】:

我试图弄清楚如何在 Python 中将多个值附加到列表中。我知道这样做的方法很少,例如手动输入值,或者将追加操作放在for 循环中,或者appendextend 函数中。

但是,我想知道是否有更简洁的方法可以做到这一点?也许是某个包或功能?

【问题讨论】:

标签: python list


【解决方案1】:

您可以使用sequence method list.extend 将列表扩展为来自任何类型的可迭代对象的多个值,可以是另一个列表或提供一系列值的任何其他事物。

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

因此您可以使用list.append() 附加单个 值,并使用list.extend() 附加多个 值。

【讨论】:

  • 在使用 Python 的第一天向某人介绍生成器有点复杂。
  • @DanielRoseman 我的意思是这些值可以来自任何种可迭代序列。
  • 请注意,与 append() 相比,extend 不会保留您添加的元素的结构。在您使用附加的示例中,您将获得[1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]Python 3
  • @YohanObadia 如果 17 年的 Python 3 是这种情况,那么情况就不再如此了——Python 3.7.7 完全符合 poke 的描述。
  • @YohanObadia 这没有任何意义。 Append 附加一个元素,因此它“保持结构”。但那是一个废话,真的。 @ Post169,从 17 年到今天没有任何变化,extend 和 append 的行为仍然相同,Yohan 只是不明白是什么。
【解决方案2】:

除了append 函数,如果“多个值”是指另一个列表,您可以像这样简单地连接它们。

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]

【讨论】:

    【解决方案3】:

    如果您查看official docs,您会在appendextend 的正下方看到。这就是你要找的东西。

    还有itertools.chain,如果您对高效迭代而不是完全填充的数据结构更感兴趣。

    【讨论】:

      【解决方案4】:
      letter = ["a", "b", "c", "d"]
      letter.extend(["e", "f", "g", "h"])
      letter.extend(("e", "f", "g", "h"))
      print(letter)
      ... 
      ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'e', 'f', 'g', 'h']
          
      

      【讨论】:

        【解决方案5】:

        如果项目数保存在变量 n 中。您可以使用列表推导和加号进行列表扩展。

        lst = ['A', 'B']
        n = 1
        new_lst = lst + ['flag'+str(x) for x in range(n)]
        print(my_lst)
        
        >>> ['A','B','flag0','flag1']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-29
          • 1970-01-01
          • 1970-01-01
          • 2014-06-07
          • 1970-01-01
          • 2022-01-04
          • 1970-01-01
          • 2019-03-29
          相关资源
          最近更新 更多