Python 列表追加多个元素
我想一次性往我的列表里添加多个元素。我试过这样做:
>>> l = []
>>> l.append('a')
>>> l
['a']
>>> l.append('b').append('c')
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
l.append('b').append('c')
AttributeError: 'NoneType' object has no attribute 'append'
>>>
那我该怎么一次性添加 'b'
和 'c'
呢?
3 个回答
1
l = []
l.extend([1,2,3,4,5])
有一个方法可以满足你的需求。
2
使用 list.extend
方法:
>>> l = []
>>> l.extend(('a', 'b'))
>>> l
['a', 'b']
需要注意的是,和 list.append
一样,list.extend
也是直接修改列表的内容,并且返回的是 None
,所以你不能把这些方法连在一起使用。
但是对于字符串来说,它们的方法会返回一个新的字符串。因此,我们可以把这些方法连在一起调用:
>>> s = 'foobar'
>>> s.replace('o', '^').replace('a', '*').upper()
'F^^B*R'
3
方法 append()
是就地操作的。换句话说,它会直接修改原来的列表,而不会返回一个新的列表。
所以,如果你写 l.append('b')
,它不会返回任何东西(实际上它返回的是 None
),你 不能 这样做:
l.append('b').append('c')
因为这相当于
None.append('c')
回答这个问题:我怎么能一次性添加 'b' 和 'c'?
你可以用 extend()
这样来做:
l.extend(('b', 'c'))