2014-03-19 123 views
0

我想一次追加多個元素到我的列表中。我想這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'一次?

+1

'my_list + ['a','b']' –

回答

1

方法append()工程到位。換句話說,它修改了列表,並且不返回新的列表。

所以,如果l.append('b')不返回任何東西(事實上它返回None),你不能做:

l.append('b').append('c') 

,因爲這將等同於

None.append('c') 

回答問題:我該如何追加'b'和'c'一次?

您可以通過以下方式使用extend()

l.extend(('b', 'c')) 
+0

感謝您解釋爲什麼它不工作。擴展像魅力一樣工作。 – doniyor

2

使用list.extend

>>> l = [] 
>>> l.extend(('a', 'b')) 
>>> l 
['a', 'b'] 

注意,類似於list.appendlist.extend還修改就地列表並返回None,所以鏈接這些方法調用是不可能的。

但是,當涉及到字符串,他們的方法返回一個新的字符串。因此,我們可以鏈方法呼籲他們:

>>> s = 'foobar' 
>>> s.replace('o', '^').replace('a', '*').upper() 
'F^^B*R' 
1
l = [] 
l.extend([1,2,3,4,5]) 

有你的目的的方法。

+0

oops,另一個人幾乎同時給出了相同的答案。 – crzyonez777