繁体   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