如何在Python中将条件循环与for循环结合?

时间:2018-08-21 08:39:45

标签: python for-loop syntax simplification

我有一个简单的例子。我认为可以在Python中以最小的工作量组合if语句和for循环。鉴于:

sublists = [number1, number2, number3]

for sublist in sublists:
    if sublist:
        print(sublist)

我认为我可以将for循环压缩为:

for sublist in sublists if sublist:

但这会导致语法无效。在这个例子中,我并不是特别讲究,我只想要一种简单的if语句带循环的方法。

3 个答案:

答案 0 :(得分:2)

如果要从原始子列表中过滤掉所有空子列表,则必须执行以下操作。这将为您提供所有非空的子列表。

print([sublist for sublist in sublists if sublist])

*针对语法进行了编辑

答案 1 :(得分:1)

我发布后立即在翻译中解决了这个问题。

for x in ( x for x in sublists if x ):

我认为不是很干净,嵌套的if语句更具可读性。如果有更清洁的方法,我愿意接受其他建议。

答案 2 :(得分:1)

我认为您无法将语法简化为python中的单行代码,但实际上必须键入所有循环和if语句的链接行。

列表推导(5.1.3中的see here)是一个例外。它们可用于从列表中生成新列表。一个例子:

test_list = ["Blue Candy", "Apple", "Red Candy", "Orange", "Pear", "Yellow Candy"]
candy_list = [x for x in test_list if "Candy" in x]