【问题标题】:append function in python [duplicate]python中的附加函数[重复]
【发布时间】:2017-02-16 06:13:44
【问题描述】:

我有一个列表X = ['xyz']

我使用以下命令附加到另一个变量。

L = X

L.append(X)

L

Out[109]: ['xyz', [...]]

我无法理解为什么新 L 列表中的第二个元素的值不是 'xyz'

我的问题不是如何追加或扩展列表,而是关于 Append 函数的功能,下面@sinsuren 已经正确解释了这一点。

【问题讨论】:

  • 呃,你好像给自己附加了一个列表。你认为会发生什么?
  • 您可能想改用extend()
  • 为什么这个问题被标记为重复,我不明白。 :( :( 我的问题不是如何追加或扩展列表,而是关于 Append 函数的功能,下面的@sinsuren 已经正确解释了这一点。

标签: python list append


【解决方案1】:

appendX 作为元素添加到L。如果您希望将X 中的元素插入到L,请改用extend

>>> X = ['xyz']
>>> L = X
>>> L.extend(X)
>>> L
['xyz', 'xyz']

【讨论】:

    【解决方案2】:

    试试这个,它会扩展列表。

    L.extend(X)
    

    但是如果你想使用append。使用像 L.append('abc') 这样的元素。它将给出相同的结果或L.append(X[0])

    编辑:
    您已将列表附加到自身。它将递归地附加到自身,因此即使L[1] 也会给你相同的响应。喜欢L[1] = ['xyz', [...]]。更多理解请参考What's exactly happening in infinite nested lists?

    【讨论】:

    • 关于何时不使用“附加”功能的任何规则?
    • 如果你想放一个元素,使用 append。如果您想通过在末尾链接另一个列表来使您的列表更长,请使用扩展。
    • @Moberg,为什么在下面的示例中它可以正常工作? >>> x = [1,2,3]>>> y = [4,5,6]>>> x.append(y)>>> x[1, 2, 3, [4, 5, 6]]
    • 是的,这是意料之中的。但我最初的问题是,为什么结果列表中的第二个元素是空白的?
    • 当您将 L 与 X 分配时,两者共享相同的引用。因此,您向自身附加了一个包含相同引用的列表。似乎是无限的Like Inception Movie
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 2018-10-24
    • 2019-03-16
    • 2020-04-29
    • 2021-06-20
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多