Я предполагаю, что есть простое решение, которое я пропускаю. Лучше так, чем сложно, не так ли?
Проще говоря:
var = ['p', 's', 'c', 'x', 'd'].remove('d')
заставляет var
иметь тип None
. Что здесь происходит?
Я предполагаю, что есть простое решение, которое я пропускаю. Лучше так, чем сложно, не так ли?
Проще говоря:
var = ['p', 's', 'c', 'x', 'd'].remove('d')
заставляет var
иметь тип None
. Что здесь происходит?
remove
ничего не возвращает. Он изменяет существующий список на месте. Задание не нужно.
Заменять
var = ['p', 's', 'c', 'x', 'd'].remove('d')
с
var = ['p', 's', 'c', 'x', 'd']
var.remove('d')
Теперь var
будет иметь значение ['p', 's', 'c', 'x']
.
None
или, по крайней мере, что-то отличное от self
. (Исключениями являются в основном особые случаи, такие как __iadd__
, или методы, специфичные для предметной области, из фреймворков, которые имеют свои собственные идиомы.)
- person abarnert; 05.11.2014
remove
изменяет список на месте и возвращает None
. Вы должны поместить его в переменную, а затем изменить это:
>>> var = ['p', 's', 'c', 'x', 'd']
>>> var.remove('d') # Notice how it doesn't return anything.
>>> var
['p', 's', 'c', 'x']
.remove
неправильно? Вы имеете в виду.pop
? - person g.d.d.c   schedule 05.11.2014remove
(а такжеindex
и других методов поиска по списку) являются признаками проблем с дизайном. Возможно, вам следует использоватьset
, или, может быть, у вас есть или должен быть индекс, но вы его не используете и т. д. Это определенно не всегда правда, но об этом стоит подумать. - person abarnert   schedule 05.11.2014