簡體   English   中英

反轉列表理解

[英]Reversing a List Comprehension

很抱歉初學者的問題,但到目前為止我已經花了太長時間來解決這個問題,而且我相信這是一個簡單的解決方案。

所以

在練習中,我將這個簡單的列表理解改回 for 循環:

numbers = [n for n in range(10)]
listcomp = [n/2 for n in numbers if n%2 == 0]

顯然所有這一切都是取數字 0 到 9,將它們除以 2 得到從 0.0 到 4.5 的浮點數,然后從列表中刪除除以 2 的余數不等於 0 的條目,只留下從 0.0 到 4.5 的整數4.0. 這是我認為可行的方法,目前的問題是 if 語句和第二個 append 似乎沒有效果,我不知道為什么。 如果有人可以解釋,我想了解這個問題。

numbers = []
newlist = []
for num in range(0, 10):
    numbers.append(num/2)
for n in numbers:
    if n%2 == 0:
        newlist.append

對於第一個循環,您將遍歷范圍並附加該范圍內每個數字除以 2 的值。 在第一個列表推導式中,您要做的就是創建一個列表,其中包含給定范圍內的所有整數。 在第二個 for 循環中,您基本上是在檢查數字是否為偶數,然后根本不附加數字: newlist.append 在第二個列表推導式中,如果數字是偶數,則附加數字除以二。

將您的循環更改為:

for num in range(0, 10):
    numbers.append(num)
for n in numbers:
    if n%2 == 0:
        newlist.append(n/2)

還可能值得注意的是,您可以通過將第一個 for 循環替換為:

mylist = list(range(10))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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