[英]Python list comprehension: assigning values in if else statement
我正在嘗試為下面的python循環編寫List理解
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的新手,因此不確定是否可以將其轉換為理解力。 任何幫助,將不勝感激。
三元表達式的工作方式略有不同:
['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)]
#驅動程序值
OUT : ['EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD']
['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)
你可以看看這個了解列表理解更多。
如果您想知道哪個數字是偶數或奇數,請嘗試此操作
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”甚至']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.