如何在 Python 中结合条件语句和 for 循环?
How can I combine a conditional with a for loop in Python?
我有一个简单的例子。我认为可以在 Python 中以最小的努力组合 if 语句和 for 循环。给定:
sublists = [number1, number2, number3]
for sublist in sublists:
if sublist:
print(sublist)
我想我可以将 for 循环压缩为:
for sublist in sublists if sublist:
但这会导致语法无效。我对这个例子并不太特别,我只想要一种方法,其中包含一个带有循环的简单 if 语句。
如果您想从原始子列表中过滤掉所有空子列表,则必须执行如下操作。这将为您提供所有非空子列表。
print([sublist for sublist in sublists if sublist])
*针对语法进行了编辑
我发布后立即在解释器中解决了这个问题。
for x in ( x for x in sublists if x ):
没有我想要的那么干净,嵌套的 if 语句在我看来更具可读性。如果有更简洁的方法,我愿意接受其他建议。
我认为您无法将语法简化为 python 中的一行,但确实必须键入链接 for 循环和 if 语句的所有行。
列表解析是一个例外(see here 在 5.1.3)。它们可用于从列表中生成新列表。一个例子:
test_list = ["Blue Candy", "Apple", "Red Candy", "Orange", "Pear", "Yellow Candy"]
candy_list = [x for x in test_list if "Candy" in x]
我有一个简单的例子。我认为可以在 Python 中以最小的努力组合 if 语句和 for 循环。给定:
sublists = [number1, number2, number3]
for sublist in sublists:
if sublist:
print(sublist)
我想我可以将 for 循环压缩为:
for sublist in sublists if sublist:
但这会导致语法无效。我对这个例子并不太特别,我只想要一种方法,其中包含一个带有循环的简单 if 语句。
如果您想从原始子列表中过滤掉所有空子列表,则必须执行如下操作。这将为您提供所有非空子列表。
print([sublist for sublist in sublists if sublist])
*针对语法进行了编辑
我发布后立即在解释器中解决了这个问题。
for x in ( x for x in sublists if x ):
没有我想要的那么干净,嵌套的 if 语句在我看来更具可读性。如果有更简洁的方法,我愿意接受其他建议。
我认为您无法将语法简化为 python 中的一行,但确实必须键入链接 for 循环和 if 语句的所有行。
列表解析是一个例外(see here 在 5.1.3)。它们可用于从列表中生成新列表。一个例子:
test_list = ["Blue Candy", "Apple", "Red Candy", "Orange", "Pear", "Yellow Candy"]
candy_list = [x for x in test_list if "Candy" in x]