2013-11-27 65 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 ','')