簡體   English   中英

Python列表理解:在if else語句中分配值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM