takewhile() 中的反向计数?Python2.7

流浪汉带轮子

我只是想问一下是否可以使用 takewhile() 将这段代码转换为列表理解?我正在使用 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 开始,这就是为什么它没有给出我想要的输出。

有没有办法在 takewhile 中反转迭代器(例如:从 4 开始计数到 ​​1 而不是 0 到 3?)

对于这种困境,你能给我一些建议吗?我会很感激。如果这个问题有重复,请告诉我。

霍里亚科曼

可以调用 Xrangexrange(1, n+1)来获取您想要的列表。也可以调用 asxrange (n, 1, -1)直接获取反向列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档