This question already has answers here:
Python FizzBuzz in one line [closed]
                                
                                    (2个答案)
                                
                        
                                5年前关闭。
            
                    
我在考虑是否有可能在列表理解中编写ifs和elifs及elses,并指定如果该表达式为真我们需要做什么。我已经尝试了以下方法,但是没有用:

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


我正在使用Python 3.3.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)])

10-08 18:09