我正在尝试用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,所以不确定这能否转化为一种理解。任何帮助都将不胜感激。
发布于 2018-07-13 13:38:10
三元表达式的工作方式略有不同:
['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)]方括号可以用于澄清,但它们不是必需的,并且可能会使人们认为您正在构建元组或生成器表达式。
发布于 2018-07-13 13:39:00
它应该是:
>>> ['EVEN' if num%2 == 0 else 'ODD' for num in range(10)]#驱动器值
OUT : ['EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD']发布于 2018-07-13 14:01:42
['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来了解更多的列表理解。
https://stackoverflow.com/questions/51318246
复制相似问题