我的最终目标是:给定一个数字列表,创建映射,其中键是数字,值是给定列表中的频率。
假设我有一个输入,我想通过标准输入提供给程序。它是一行,其中包含一定数量的整数。示例:
12 1 4 5 10 87
有没有一种方法我一次只能读取一个整数?到目前为止,我一直在进行输入,根据空格分隔符将其分割,然后为每个元素将字符串转换为整数,如下所示:
arr = input().split() //Take input
myArr = list(map(lambda x : int(x), arr)) //Map each string element to it's integer counterpart.
由于我要做的只是创建地图,所以我不需要一次读取整个输入并将其存储在内存中。 有没有更好的方法可以做到这一点,我一次只能读取一个整数并构建地图,而不必一次完整地读取列表?
谢谢!
答案 0 :(得分:0)
您要寻找的是Counter。计数器创建一个具有出现次数的字典。您可以像下面这样。
from collections import Counter
print(Counter(map(int, input().split())))
输出:
12 1 4 5 10 87
Counter({12: 1, 1: 1, 4: 1, 5: 1, 10: 1, 87: 1})