a=[x*3 for x in range(5) if x%3==0]
print(a)
为什么输出是
[0,9]
而不是
[0,3,6,9,12]
你的代码相当与下面这一段代码
a=[]
for x in range(5):
if x%3==0:
a.append(x*3)
print(a)
a=[x*3 for x in range(5)]
if x%3==0
那么x的取值只能是0和3,124都被过滤掉了呀
你自己拿出IDE把代码粘进去改改再执行,如果电脑上没有安装编译器那就打开网页版在线编辑
先试试print([x*3 for x in range(5)])
再试试print([x for x in range(5)] if x%3==0)
看分别都是什么,不要想当然
先执行的for x in range(5) if x%3==0,只有0,3,然后执行x*3,结果[0,9],效果等同于下面代码:
# a=[x*3 for x in range(5) if x%3==0]
# print(a)
a = []
for x in range(5) :
if x%3 == 0:
a.append(x*3)
print(a)