Python - 在列表推导中使用if,elif和else以及它们各自的结果

时间:2014-03-01 14:25:53

标签: python list if-statement list-comprehension

我在想是否有可能在列表理解中编写ifs和elifs和elses,并指定在表达式变为true时我们需要做什么。我尝试过以下但是它不起作用:

print(list(x for x in range(1,101) if x%3 == 0 print("Fizz")))

我正在使用Python 3.3.4。

1 个答案:

答案 0 :(得分:4)

您可以在if的Truthy部分或if的Truthy部分写下另一个else条件,就像这样

print(["FizzBuzz" if x%15 == 0 else "Fizz" if x%3 == 0 else "Buzz" if x % 5 == 0 else x for x in range(1,101)])

可读版本:

print(["FizzBuzz"
          if x%15 == 0
          else
             "Fizz"
                 if x%3 == 0
                 else
                   "Buzz"
                      if x % 5 == 0
                      else
                         x
       for x in range(1,101)])