2013-11-27 110 views
0

我有一個名爲 「comms_chairs」 一個python列表的結構是這樣的:list.remove在python - 不能識別的命令

[[' Chairwoman Debbie Stabenow ', 'Agriculture:'], [' Chairman Tim Johnson' ',' 'Banking'], [' Chairman Jay Rockefeller ', 'Commerce:'], [' Chairman Jeff Bingaman', 'Energy:'] 

當我輸入comms_chairs [0],我得到(預期)

[' Chairwoman Debbie Stabenow ', 'Agriculture:'] 

然而,當我試圖從列表中刪除字符串「董事長」下面的失敗:

>>> type(comms_chairs[0]) 
<type 'list'> 
>>> comms_chairs[0].remove(' Chairwoman') 
Traceback (most recent call last): 
File "<pyshell#104>", line 1, in <module> 
    comms_chairs[0].remove(' Chairwoman') 
ValueError: list.remove(x): x not in list 

同問題,當我不把Chairwoman之前的空間。這裏發生了什麼?它確定在我看來像Chairwoman是在comms_chairs[0]。我的總體目標是刪除所有的Chairwoman和'主席'字符串,但理解一般列表中的內容可能會有所幫助。如果它不明顯,我是一個Python的完全新手。

+1

你沒有一個只有「主席」的項目...你需要'my_list.remove (「女主席Debbie Stabenow」) –

回答

1

' Chairwoman'不在comms_chairs[0]。它是comms_chairs[0][0]的子字符串,但它不是comms_chairs[0]的元素。您遇到的問題與您嘗試使用comms_chairs.remove(' Chairwoman')時遇到的問題類似。

爲了解決這個問題,無論是過濾掉含' Chairwoman'與列表理解的字符串,創建一個新的列表,或者在所述字串迭代(以相反的順序,以便除去它們不與迭代的混亂)以及除去含每個串' Chairwoman'

0

寫這

comms_chairs[0].remove(' Chairwoman Debbie Stabenow ') 

另外請注意,您必須在開始和結束時的一些空間。

1

這適用於第一個。所以你需要建立索引的很好

b[0][0].replace(' Chairwoman ','') 

comms_chairs [0]返回一個列表。

Soo ....字符串也是不可變的。這意味着如果你想b [0] [0]等於結果,你將不得不這樣分配它:

b[0][0]=b[0][0].replace(' Chairwoman ','')