在这种情况下我们可以形成一个 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]
然而,我在一种情况下感到困惑,其中 'sub' 的数量太长,而如果即使有一个 sub 违反规则,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)
以上代码有效。出于学习语言的好奇心,我们可以用列表理解格式来做吗?
我就在这里,如果有遗漏,请见谅。
列表理解语法增加了对可选决策 making/conditionals 的支持。向列表理解添加条件逻辑的最常见方法是在表达式末尾添加条件:
像这样:
new_list = [expression for member in iterable (if conditional)]
在这里,您的条件 statement/if 语句出现在右括号之前或循环之后,如果有多个循环,就像您的场景一样。
Conditionals/decision making 很重要,因为它们允许列表理解过滤掉不需要的值,这通常需要调用 filter():
这是您要求的完整列表理解:
b_list = [part for part in parts if all(sub in a_list for sub in part)]
有关列表理解的更多信息或帮助,请转到here
我最近了解到我们可以在一个python列表理解中包含多个循环,就像传统方式中的for循环序列一样。 因此,可以添加一个嵌套的 for 循环而不是另一个 for 循环作为列表理解,如下所示:
result_list = [sub for part in parts for sub in part if sub > 10]
然而,我在一种情况下感到困惑,其中 'sub' 的数量太长,而如果即使有一个 sub 违反规则,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)
以上代码有效。出于学习语言的好奇心,我们可以用列表理解格式来做吗?
我就在这里,如果有遗漏,请见谅。
列表理解语法增加了对可选决策 making/conditionals 的支持。向列表理解添加条件逻辑的最常见方法是在表达式末尾添加条件:
像这样:
new_list = [expression for member in iterable (if conditional)]
在这里,您的条件 statement/if 语句出现在右括号之前或循环之后,如果有多个循环,就像您的场景一样。
Conditionals/decision making 很重要,因为它们允许列表理解过滤掉不需要的值,这通常需要调用 filter():
这是您要求的完整列表理解:
b_list = [part for part in parts if all(sub in a_list for sub in part)]
有关列表理解的更多信息或帮助,请转到here