您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Python列表列表中过滤元素?

从Python列表列表中过滤元素?

当我们有其他可用技术时,使用lambdawithfilter有点愚蠢。

在这种情况下,我可能会以这种方式(或使用等效的生成器表达式)解决特定问题

>>> a = [[1, 2, 3], [4, 5, 6]]
>>> [item for item in a if sum(item) > 10]
[[4, 5, 6]]

或者,如果我需要打开包装,例如

>>> [(x, y, z) for x, y, z in a if (x + y) ** z > 30]
[(4, 5, 6)]

如果我真的需要一个功能,我可以使用参数元组拆包(这是在Python 3.x中删除,顺便说一下,因为人不太多使用它):lambda (x, y, z): x + y + z需要一个元组,并解压缩它的三个项目,如xyz。(请注意,您也可以在中使用它def,即:def f((x, y,z)): return x + y + z。)

当然,您可以在所有版本的Python中使用分配样式解压缩(def f(item): x, y, z = item; return x + y + z)和索引(lambda item: item[0] + item[1] + item[2])。

python 2022/1/1 18:38:33 有265人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶