2013-11-27 4 views
0

У меня есть список питона с именем "comms_chairs", которая строится так: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 

Same проблема, когда я не помещаю пространство до Chairwoman. Что здесь происходит? Мне это точно кажется, что Chairwoman находится в comms_chairs[0]. Моя общая цель - удалить все строки Chairwoman и «Председатель», но понимание того, что происходит со списком в целом, вероятно, будет полезно. Если это не очевидно, я полный новичок с Python.

+1

вы не имеете пункт только с «председателем» ... вам нужно будет 'my_list.remove («Председатель Дебби Стабенов») –

ответ

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 .... Строки также неизменяемы. Значение, если вы хотите б [0] [0] сравняться результат вы должны назначить это следующим образом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^