繁体   English   中英

在这种情况下我们可以形成一个Python列表理解吗?

[英]Can we form a Python List Comprehension in this case?

我最近了解到,我们可以在 python 列表解析中包含多个循环,就像传统方式中的 for 循环序列一样。 因此,可以添加一个嵌套的 for 循环而不是另一个 for 循环作为列表推导,如下所示:

result_list = [sub for part in parts for sub in part if sub > 10]

但是,我在一种情况下感到困惑,即“子”的数量太长,而在 rest 上,即使有一个子违反了规则,也可以完全忽略 if 的条件。 因此,我没有检查零件中的所有子,而是在条件中断时打破循环并继续下一个零件。

我正在从我正在处理的代码中分享一个场景。

for part in parts:
    for sub in part:
        if sub not in a_list:
            var = False
            break
    if var == True:
        b_list.append(part)

上面的代码有效。 只是出于对学习语言的好奇,我们可以用列表理解格式来做吗?

我在这,如果我错过了什么,很抱歉。

列表理解语法增加了对可选决策/条件的支持。 将条件逻辑添加到列表推导的最常见方法是在表达式末尾添加条件:

像这样:

new_list = [expression for member in iterable (if conditional)]

在这里,您的条件语句/if 语句就在右括号之前或循环之后,如果有多个循环,就像我的场景一样。

条件/决策很重要,因为它们允许列表推导过滤掉不需要的值,这通常需要调用filter():

这是您要求的完整列表理解:

b_list = [part for part in parts if all(sub in a_list for sub in part)]

有关列表理解的更多信息或帮助,请转到此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM