我试图弄清楚如何在Python中将多个值附加到列表中。我知道有一些方法可以做到这一点,例如手动输入值,或将追加操作放入for循环,或追加和扩展函数。
然而,我想知道是否有一种更简洁的方式来做到这一点?也许是某个包或函数?
我试图弄清楚如何在Python中将多个值附加到列表中。我知道有一些方法可以做到这一点,例如手动输入值,或将追加操作放入for循环,或追加和扩展函数。
然而,我想知道是否有一种更简洁的方式来做到这一点?也许是某个包或函数?
当前回答
如果你看一下官方文档,你会在下面看到append, extend。这就是你要找的。
还有itertools。链,如果你更感兴趣的是有效的迭代,而不是最终得到一个完全填充的数据结构。
其他回答
除了append函数,如果你所说的“多个值”指的是另一个列表,你可以像这样简单地将它们连接起来。
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
如果你看一下官方文档,你会在下面看到append, extend。这就是你要找的。
还有itertools。链,如果你更感兴趣的是有效的迭代,而不是最终得到一个完全填充的数据结构。
解决这类问题的一种方法是——
在这里,我们通过创建变量new_values将一个列表插入到现有列表中。
注意,我们在第二个索引中插入值,即[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)
如果项的数量保存在一个变量n中,您可以使用列表推导式和加号进行列表展开。
lst = ['A', 'B']
n = 1
new_lst = lst + ['flag'+str(x) for x in range(n)]
print(my_lst)
>>> ['A','B','flag0','flag1']
您可以使用序列方法列表。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()来添加多个值。