python 生成列表 使用 if 和 else
# 列表生成器中的if ... 和 if ... else ... # l = [x for x in range(1,11) if x % 2 == 0] #正常输出 # print(l) # l = [x if x % 2 == 0 for x in range(1, 11)] #报错 # print(l) # 这是因为跟在for后面的if是一个筛选条件,不能带else # 把else加上呢 # l = [x if x % 2 == 0 else -x for x in range(1, 11)] #正确输出 # print(l) #这是因为for前面的部分是一个表达式,它必须根据x计算出一个结果。因此,考察表达式:x if x % 2 == 0,它无法根据x计算出结果,因为缺少else,必须加上else: # 总之呢就是一句话: #加在for 后面呢他就是一个筛选条件,而加在for前面呢他就是一个表达式