我只想问一问,是否有可能将这段代码转换成一种理解列表的方法?我用的是python2.7。
我有这样的代码:
n=4
c=[]
while n!=0:
c.append(n)
n-=1
print c产出如下:
[4,3,2,1]我想把这些代码转换成一个理解列表的方法,并使用了takewhile()
我试过了,但没有运气:
from itertools import takewhile
n=4
c=[n for n in takewhile(lambda n: n!=0, xrange(n))]
print c遗憾的是,输出是一个空列表:
[]我认为原因是xrange(n)的值以0开头,这就是为什么它没有给出我想要的输出。
是否有一种方法可以在接收时反转迭代器(比如:从4开始计数到1,而不是0到3?)
你能给我一些关于这种困境的建议吗?我会很感激的。如果这个问题是重复的,请告诉我。
发布于 2017-02-25 10:19:28
Xrange可以被称为xrange(1, n+1),以获得所需的列表。您也可以将其称为xrange (n, 1, -1),以直接获得反向列表。
https://stackoverflow.com/questions/42454691
复制相似问题