gpt4 book ai didi

python - Python itertools 计数器的当前值是多少

转载 作者:太空狗 更新时间:2023-10-29 21:45:36 25 4
gpt4 key购买 nike

Python (2.7.9) 中的 itertools.count 计数器对于线程安全计数非常方便。我怎样才能获得计数器的当前值?

每次您调用 next() 时,计数器都会递增并返回最后一个值:

import itertools
x = itertools.count()
print x.next() # 0
print x.next() # 1
print x.next() # 2

到目前为止,还不错。

如果不调用 next(),我找不到获取计数器当前值的方法,这会产生增加计数器或使用 的不良副作用repr() 函数。

从上面继续:

print repr(x)  # "count(3)"

因此您可以解析 repr() 的输出。有点像

current_value = int(repr(x)[6:-1])

可以解决问题,但真的很难看。

有没有办法更直接的获取计数器的当前值?

最佳答案

另一种在不推进迭代器的情况下获取下一个值的技巧是滥用复制协议(protocol):

>>> c = itertools.count()
>>> c.__reduce__()[1][0]
0
>>> next(c)
0
>>> c.__reduce__()[1][0]
1

或者直接从对象副本中获取:

>>> from copy import copy
>>> next(copy(c))
1

关于python - Python itertools 计数器的当前值是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com