我试图弄清楚如何在Python中将多个值附加到列表中。我知道有一些方法可以做到这一点,例如手动输入值,或将追加操作放在for循环中,或append和extend函数。
for
append
extend
然而,我想知道是否有一种更简洁的方式来做到这一点?也许是某个包或函数?
除了append函数之外,如果你所说的“多值”指的是另一个列表,你可以像这样简单地将它们连接起来。
>>> a = [1,2,3] >>> b = [4,5,6] >>> a + b [1, 2, 3, 4, 5, 6]
如果你看一下官方文档,你会看到在append的正下方,extend。这就是你要找的。
如果你对高效迭代更感兴趣,而不是以完全填充的数据结构结束,还有itertools.chain。
itertools.chain
你可以使用序列方法list.extend从任何类型的可迭代对象中扩展多个值来扩展列表,可以是另一个列表或任何其他提供值序列的东西。
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()来附加多个值。
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)