.remove()
изменяет исходный список на месте, ничего не возвращает. Вот почему features_list_1
было None, поскольку это значение по умолчанию, когда ничего не возвращается.
Если вы хотите сделать это в одну строку, вы не можете использовать .remove()
, вместо этого создайте новый список со списком.
features_list = [x for x in data_panda.columns.values if x != 'email_address']
Но в отличие от remove
это удалит все вхождения 'email_address'
, тогда как remove
удалит только первое.
Следующее будет работать как одна строка .remove()
(удаляет только первое вхождение) без использования точек с запятой (поскольку это просто обман). Но пожалуйста, пожалуйста, не делайте этого ... напишите это как обычно.
features_list = (lambda y=set(): [x for x in data_panda.columns.values if y or (x != 'email_address' or y.add(0))])()