相关疑难解决方法(0)

Python3中的过滤器

我正在学习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)

这是什么意思?这是否意味着我的过滤对象即出来的列表存储在该内存位置?我如何获得我需要的清单?

python list filter python-3.x

106
推荐指数
2
解决办法
11万
查看次数

从列表列表中删除项目:pythonic方式

我有这种列表列表(只有两个嵌套级别):

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']]

在这里我的问题:

  • 你能建议一个更加pythonic /优雅的方式来做同样的事情
  • 你能否提出一种智能的方法来概括嵌套级别的数量,例如: my_list = [ ['A'], ['B'], ['C', ['D', 'E', ['F']], 'G'], ['H'] ]
  • 理想的方法将有一个布尔参数empty_lists来决定是否保留空列表.

python loops list

3
推荐指数
1
解决办法
143
查看次数

标签 统计

list ×2

python ×2

filter ×1

loops ×1

python-3.x ×1