python list()在与ipython notebook中的另一个操作嵌套时删除整个列表

Par*_*ran 0 python list ipython

我想从熊猫数据框中获取列标题列表.我还想删除列表中的一个不需要的元素.我尝试下面的代码,这是有效的.

features_list = list(data_panda.columns.values)
features_list.remove('email_address')
features_list
Run Code Online (Sandbox Code Playgroud)

输出:生成列表

但是,当我尝试在下面的单行中这样做时,我得不到任何输出.

features_list_1 = list(data_panda.columns.values).remove('email_address')
features_list_1
Run Code Online (Sandbox Code Playgroud)

输出:没什么

截图: 在此输入图像描述

为什么?

我在Anaconda中使用Py2环境.

abc*_*ccd 5

.remove()修改原始列表,它不会返回任何内容.这就是为什么features_list_1是None,因为当没有返回任何内容时,这是默认值.


如果您想在一行中执行此操作,则无法使用.remove(),而是创建具有列表推导的列表.

features_list = [x for x in data_panda.columns.values if x != 'email_address']
Run Code Online (Sandbox Code Playgroud)

但不像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))])()
Run Code Online (Sandbox Code Playgroud)