-1

对于初学者的问题,我很抱歉,但到目前为止我已经花了太长时间搞砸了这个问题,我相信这是一个简单的解决方案。

所以

对于练习,我将这个简单的列表理解改回 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.0。这是我认为可行的方法,目前的问题是 if 语句和第二个附加似乎没有效果,我不知道为什么。如果有人可以解释,我想了解这个问题。

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

1 回答 1

1

对于第一个循环,您将遍历范围并附加该范围中每个数字的值除以二。在第一个列表推导中,您所做的就是创建一个列表,其中包含给定范围内的所有整数。在第二个 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))
于 2020-09-27T12:28:06.053 回答