0

我有一个名为“comms_chairs”的 python 列表,其结构如下:

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

当我输入 comms_chairs[0] 时,我得到(如预期的那样)

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

但是,当我尝试从列表中删除字符串“Chairwoman”时,以下失败:

>>> 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。这里发生了什么?在我看来,它确实像Chairwomancomms_chairs[0]. 我的总体目标是删除所有Chairwoman“主席”字符串,但了解列表的总体情况可能会有所帮助。如果它不明显,我是 Python 的完全新手。

4

3 回答 3

1

' Chairwoman'不在comms_chairs[0]。它是 的子串comms_chairs[0][0],但不是 的元素comms_chairs[0]。您遇到的问题类似于您只是尝试会遇到的问题comms_chairs.remove(' Chairwoman')

要解决此问题,请使用列表推导过滤掉包含的字符串' Chairwoman',创建一个新列表,或迭代字符串(以相反的顺序删除它们不会与迭代混淆)并删除每个包含' Chairwoman'.

于 2013-11-27T20:54:49.493 回答
1

这适用于第一个。

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

comms_chairs[0] 返回一个列表,因此您需要很好地对其进行索引。

Soo.... 字符串也是不可变的。这意味着如果您希望 b[0][0] 等于结果,则必须像这样分配它:

 b[0][0]=b[0][0].replace(' Chairwoman ','')
于 2013-11-27T20:59:40.380 回答
0

写这个

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

另请注意,开头和结尾有一些空格。

于 2013-11-27T20:54:06.653 回答