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


175

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

但是,我想知道是否还有更整洁的方法?也许某个软件包或功能?


8
您找到列表文档了吗?
马丁·彼得斯

5
您说您知道有一些方法可以做到这一点,但不要展示您尝试过的方法,也不要解释为什么您无所不知的方法还不够好。
2013年

extend()定义更整洁
弗雷德里克·哈米迪

3
@FrédéricHamidi more neat == additional package dependency,当然!
hexparrot

1
如何将这个问题视为题外话?
维克多·施罗德

Answers:


351

您可以使用sequence方法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()可以附加多个值。


1
在使用Python的第一天向某人介绍生成器有点复杂。
Daniel Roseman

1
@DanielRoseman我的观点是,值可以来自任何可迭代的序列。

6
请注意,与相比,extend不会保留添加的元素的结构append()。在使用append的示例中,您将获得[1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]Python 3
Yohan Obadia

1
@YohanObadia如果'17的Python 3就是这种情况,那就不再是这种情况了-Python 3.7.7完全按照戳记描述了。
Post169

28

除了append函数以外,如果用“多个值”表示另一个列表,则可以像这样简单地将它们连接起来。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.