【问题标题】:Why does the insert function and concatenation do this? [duplicate]为什么插入函数和连接会这样做? [复制]
【发布时间】:2017-11-15 09:21:04
【问题描述】:
x = [4, 5, 6]
li = [1, 2, 3, 7]
li.insert(3,x)
x+=li
print(x)

输出是:

[4, 5, 6, 1, 2, 3, [...], 7]

我是 python/编码的新手,我不知道这些省略号是什么,但是当我编写其他代码时,它开始变得很奇怪。不知道该问什么,因为我不知道发生了什么。谢谢!

【问题讨论】:

  • 不知道该问什么,因为我不知道发生了什么。不知道该回答什么,因为我不知道问题是什么。
  • 我认为您不想在列表中插入列表。您想在列表中插入列表项。
  • 您在位置 3 处插入对象 x。由于 x 是一个列表,您将在列表中插入一个列表。
  • 从基础开始,先了解数据结构类型。那么它就有意义了。
  • @Vinny ty vinny 我现在知道要查找什么了

标签: python list insert concatenation


【解决方案1】:

您在列表中插入了一个列表,可能不是您想要的。

那么当这样做时

x+=li

然后列表的表示会显示一个省略号,因为您是从自身引用列表(x 已在 li 中引用)

要在列表中一次插入多个项目,您可以使用切片分配:

>>> x = [4, 5, 6]
>>> li = [1, 2, 3, 7]
>>> li[3:3] = x
>>> li
[1, 2, 3, 4, 5, 6, 7]

【讨论】:

  • 谢谢你!所以我收集到的是我使用的插入函数实际上是从'x'本身引用而不是简单地获取它的值?谢谢
  • 因为这就是 python 的工作方式:一切都是引用,而列表是可变的。如果你想这样做,只需使用 x 的副本:x[:]list(x)
猜你喜欢
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
  • 2022-12-04
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多