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