如何在Python中将多个值附加到列表中

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

然而,我想知道是否有一种更简洁的方式来做到这一点?也许是某个包或函数?

732969 次浏览

除了append函数之外,如果你所说的“多值”指的是另一个列表,你可以像这样简单地将它们连接起来。

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

如果你看一下官方文档,你会看到在append的正下方,extend。这就是你要找的。

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

你可以使用序列方法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()来附加多个值。

如果项的数量保存在一个变量n中,您可以使用列表推导式和加号进行列表展开。

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


>>> ['A','B','flag0','flag1']

解决这类问题的一种方法是——

在这里,我们通过创建变量new_value将一个列表插入到现有列表中。

注意,我们将值插入到第二个指数中,即一个[2]

a = [1, 2, 7, 8]


new_values = [3, 4, 5, 6]


a.insert(2, new_values)


print(a)

但是这里insert()方法将把值作为列表添加。

这里有另一种方式来做同样的事情,但这一次,我们实际上将值插入到项之间。

a = [1, 2, 7, 8]


a[2:2] = [3,4,5,6]


print(a)