我正在学习Python中的过滤器概念.我正在运行这样一个简单的代码.
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
Run Code Online (Sandbox Code Playgroud)
但是我没有得到一个列表,而是得到了这样的消息.
<filter object at 0x00FDC550>
Run Code Online (Sandbox Code Playgroud)
这是什么意思?这是否意味着我的过滤对象即出来的列表存储在该内存位置?我如何获得我需要的清单?
我有这种列表列表(只有两个嵌套级别):
my_list = [['A'], ['B'], ['C','D','A','B'], ['E'], ['B', 'F', 'G'], ['H']]
我有一个要删除的项目列表my_list:
to_del = ['A','B']
这是我从代码中删除to_del元素的想法my_list:
for i in my_list:
for d in to_del:
if d in i:
i.remove(d)
Run Code Online (Sandbox Code Playgroud)
输出:
[[], [], ['C', 'D'], ['E'], ['F', 'G'], ['H']]
在这里我的问题:
my_list = [ ['A'], ['B'], ['C', ['D', 'E', ['F']], 'G'], ['H'] ]empty_lists来决定是否保留空列表.