Python 使用itertools.counter生成序列

Python 使用itertools.counter生成序列,python,count,itertools,Python,Count,Itertools,谁能解释一下,为什么我在使用没有地图的计数器时会出错?正如我看到的那样,itertools.count(1)返回一个count(1)对象 >>> "{:02}".format(itertools.count(1)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: non-empty format string passed to obj

谁能解释一下,为什么我在使用没有地图的计数器时会出错?正如我看到的那样,
itertools.count(1)
返回一个
count(1)
对象

>>> "{:02}".format(itertools.count(1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: non-empty format string passed to object.__format__

>>> map("{:02}".format, itertools.count(1))
<map object at 0x7f6d514671d0>

>>> counter = map("{:02}".format, itertools.count(1))
>>> next(counter)
'01'
>>> next(counter)
'02'...
>>“{:02}”。格式(itertools.count(1))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:传递给对象的非空格式字符串。\uuu格式__
>>>映射(“{:02}”。格式,itertools.count(1))
>>>计数器=map(“{:02}”。格式,itertools.count(1))
>>>下一个(柜台)
'01'
>>>下一个(柜台)
'02'...

消息中有哪些内容不清楚?您正在向
对象传递一个非空格式字符串(
'02'!='
)。\uuuu format\uuuu
(count对象未实现该方法,因此它调用继承的版本)。第一个代码段在计数器上调用
format
。其他代码片段对计数器返回的数字调用
format
。他们完全不同。这就像说“我有一盒巧克力。如果我试着吃那盒,它就不起作用。但是如果我把巧克力从盒子里拿出来,我就可以吃得很好。”@Rawing-谢谢,这就是我要找的
itertools.count(1)
正在返回一个对象。地图是如何得到一个数字的?比如,我怎么能不打开盒子就把巧克力从封闭的盒子里拿出来?(如果我理解正确的话)你能详细说明一下吗
map
使用从iterable中获取值,
itertools.count
是iterable.@Rawing-Oh,好的,行是-
下一行(itertools.count(1))
。谢谢,现在知道了。您可以将其更新为答案。我会接受的。信息中有什么不清楚的?您正在向
对象传递一个非空格式字符串(
'02'!='
)。\uuuu format\uuuu
(count对象未实现该方法,因此它调用继承的版本)。第一个代码段在计数器上调用
format
。其他代码片段对计数器返回的数字调用
format
。他们完全不同。这就像说“我有一盒巧克力。如果我试着吃那盒,它就不起作用。但是如果我把巧克力从盒子里拿出来,我就可以吃得很好。”@Rawing-谢谢,这就是我要找的
itertools.count(1)
正在返回一个对象。地图是如何得到一个数字的?比如,我怎么能不打开盒子就把巧克力从封闭的盒子里拿出来?(如果我理解正确的话)你能详细说明一下吗
map
使用从iterable中获取值,
itertools.count
是iterable.@Rawing-Oh,好的,行是-
下一行(itertools.count(1))
。谢谢,现在知道了。您可以将其更新为答案。我会接受的。