- 此问题在此处已有答案**:
Why can't I iterate twice over the same iterator? How can I "reset" the iterator or reuse the data?(5个答案)
两年前关闭了。
这是注解掉list
函数的代码:
from collections import Counter
a = input().split()
b = map(int, a)
##c = list(b)
d = Counter(b)
print(d)
- 输入:1 2 3**
- 输出:计数器({1:1、2:1、3:1)**
但是,当我删除标签,将c
赋值为list(b)
并重新运行代码时,会出现以下情况:
Input: 1 2 3
Output: Counter()
我的问题是,为什么计数器的输出值在b没有被赋予任何新类型的情况下会不同?据我所知,b不会受到这个操作的影响?如果这是一个愚蠢的问题,请原谅我,我对编码还是一个新手。谢谢!
1条答案
按热度按时间3qpi33ja1#
Python map()函数用于对指定的可迭代和返回的map对象的所有元素应用一个函数,Python map对象是一个迭代器,所以我们可以迭代它的元素。
这只会将'int'函数Map到.(不执行)中的每个元素。
当你调用迭代器时,它执行并返回值和清除。
例如
产出
产出
然后继续。这是一种按需执行