繁体   English   中英

在python生成器理解中使用状态?

[英]using state in python generator comprehensions?

有什么方法可以将此生成器函数转换为相对简单的生成器理解? (以下对我有用,我只想了解可能的选择)

def annotate(x):
   n = 0
   for item in x:
     yield(item,n)
     n = n + 1

使用示例:

>>> for line in annotate([3,4,5]):
...   print line
...
(3, 0)
(4, 1)
(5, 2)

您可以使用enumerate

comp = ((y,x) for x,y in enumerate(iterable))

示范:

>>> annotated = ((y,x) for x,y in enumerate(range(1,4)))
>>> for line in annotated: print line
... 
(1, 0)
(2, 1)
(3, 2)

虽然,通常只使用enumerate然后以相反的顺序解压缩即可。 :^)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM