gpt4 book ai didi

python - 使用循环描述多个条件

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:48 24 4
gpt4 key购买 nike

在下面的代码中,我试图从列表中提取数字,其中所有数字都可以被 2 整除。下面的代码有效。

l = range(100,401)
n=[]
for i in l:
s =str(i)
if all([int(s[0])%2==0,int(s[1])%2==0,int(s[2])%2==0]):
n.append(s)
print(",".join(n))

我试图插入一个 for 循环以避免显式写入所有三个条件。

l = range(100,401)
n=[]
ss=[]
for i in l:
s =str(i)
ss.append(s)
for element in ss:
for j in range(3):
if int(element[j])%2==0:
n.append(element)

print(n)

我无法获得所需的输出。不仅如此,偶数索引处的输出列表'n'的元素被打印了两次。我无法弄清楚为什么?

谢谢。

最佳答案

检查 all() 元素是否为 True 的生成器表达式来拯救你:

l = range(100,401)
n=[]
for i in l:
s = str(i)
if all(int(ch) % 2 == 0 for ch in s):
n.append(s)
print(",".join(n))

现在,即使您使用更多数字,它也能正常工作。

感谢@jpp 对生成器表达式的建议!


这里是一个更快的替代方案,您可以在其中评估 any() 是否不能被 2 整除。

l = range(100,401)
n=[]
for i in l:
s = str(i)
if any(int(ch) % 2 != 0 for ch in s):
continue
else:
n.append(s)
print(",".join(n))

关于python - 使用循环描述多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50588944/

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