gpt4 book ai didi

python - python-单行嵌套循环

转载 作者:行者123 更新时间:2023-11-28 21:35:23 24 4
gpt4 key购买 nike

以下代码的python单行等价于什么?

l=[]
for i in range(3,5) :
if i==3:
for j in range(0,2):
if i%2:
l.append(i*j)
else:
l.append(i+j)
else:
l.append(i)
print(l)

我尝试对嵌套循环使用一行,但只有一个条件是这样的:
print([i*j if i%2 else i+j for i in range(3,5) for j in range(0,2)])

注意:这里我想学习如何在两个循环中使用if-else条件的嵌套循环的单行等效。
如果不可能的话,说明原因!
提前谢谢:)

最佳答案

我想到的是为每个i生成一个序列,然后用一个封闭的理解将它们展开成一个列表:

[x for y in ((i*j if i%2 else i+j for j in range(0, 2)) if i == 3 else (i,) for i in range(3, 5)) for x in y]
# [0, 3, 4]

显然,这比嵌套版本更复杂、更难阅读,而且可能执行得更差。

关于python - python-单行嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52348813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com