Python列表理解:在if-else语句中赋值

2024-05-20 18:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用python为下面的for循环编写一个列表

num_list = []

for num in range(10):
if num % 2 == 0:
    num_list.append('EVEN')
else:
    num_list.append('ODD')

我写了这样的东西

[num if num % 2 == 0  'EVEN' else 'ODD' for num in range(10)]

以及

[num if num % 2 == 0  then 'EVEN' else 'ODD' for num in range(10)]

但两者都给出了语法错误,而且都是无效的。你知道吗

我是新来的pyhton,所以不知道这是否可以翻译成一个理解或不。任何帮助都将不胜感激。你知道吗


Tags: in列表forpyhtonifrangeelsenum
3条回答

应该是:

>>> ['EVEN' if num%2 == 0 else 'ODD' for num in range(10)]

#驱动程序值

OUT : ['EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD']

三元表达式的工作方式略有不同:

['EVEN' if num % 2 == 0 else 'ODD' for num in range(10)]

尽管我认为

['ODD' if num % 2 else 'EVEN' for num in range(10)]

看起来好多了。你知道吗

这样想:

[('ODD' if num % 2 else 'EVEN') for num in range(10)]

括号可以用于澄清,但它们不是必需的,可能会让人们误以为您在构建元组或生成器表达式。你知道吗

['EVEN' if num % 2 == 0 else 'ODD' for num in range(10)]

所以理想情况下,我们需要返回或推入列表的地方是列表理解的起点。让我们试着从for循环构建它-

num_list = []

for num in range(10):            #  for num in range(10) (third part)
    if num % 2 == 0:
        num_list.append('EVEN')  # 'EVEN' if num % 2 == 0 (first part)
    else:
        num_list.append('ODD')   #  else 'ODD' (second part)

您可以通过查看this来进一步了解列表理解。你知道吗

相关问题 更多 >