我正在尝试在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的新手,所以不确定是否可以将其转换为理解力。任何帮助将不胜感激。
答案 0 :(得分:2)
三元表达式的工作方式略有不同:
['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)]
可以使用方括号来进行说明,但这不是必需的,并且可能使人们误以为您正在构建元组或生成器表达式。
答案 1 :(得分:0)
应该是:
>>> ['EVEN' if num%2 == 0 else 'ODD' for num in range(10)]
#driver值
OUT : ['EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD']
答案 2 :(得分:0)
['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来进一步了解列表理解。
答案 3 :(得分:-1)
如果您想知道哪个数字是偶数或奇数,请尝试使用
print([str(nub) + ' Odd' if nub % 2 != 0 else str(nub) + ' Even' for nub in range(1, 11)])
输出:[“ 1奇数”,“ 2偶数”,“ 3奇数”,“ 4偶数”,“ 5奇数”,“ 6偶数”,“ 7奇数”,“ 8偶数”,“ 9奇数” ,'10偶数']