【发布时间】:2021-05-16 10:19:21
【问题描述】:
我正在尝试添加两个列表 f 和 l,如下所示。 f 和 l 的形状不同,所以我将 f 的形状与 l 相似
f = [37.37, 34.26, 33.78, 33.82, 36.33]
f.append(f)
l = [[34.4 , 39.32, 35.61, 38.12, 34.11],
[33.1 , 35.14, 36.76, 33.66, 34.31]]
z = f + l
但我得到了这个奇怪的输出:
[37.37, 34.26, 33.78, 33.82, 36.33,
[37.37, 34.26, 33.78, 33.82, 36.33, [...]],
[34.4, 39.32, 35.61, 38.12, 34.11],
[33.1, 35.14, 36.76, 33.66, 34.31]]
我没想到[...],所以我检查了 f 的值
它是
[37.37, 34.26, 33.78, 33.82, 36.33, [...]]
与以往不同,
谁能给我解释一下这里发生了什么我对python很陌生。
【问题讨论】:
-
简答:使用
extend而不是append。您可以使用append将单个元素添加到列表中。如果该元素是一个列表,您最终会得到一个嵌套列表,这就是您输出中的[...]所代表的内容。 -
如果您只想将列表翻倍,也可以使用
f *= 2-- 这比f.extend(f)IMO 更惯用。 -
@Samwise 我有点困惑,[...]的价值是什么
-
[...]只是打印时缩短列表的一种方式。 -
当你有一个引用自身的列表时使用这些省略号,否则天真的表示将是无限递归的
标签: python python-3.x list append