有没有办法从Python 3.x中的整数行中只读取一个整数?

时间:2019-06-19 10:08:14

标签: python-3.x

我的最终目标是:给定一个数字列表,创建映射,其中键是数字,值是给定列表中的频率。

假设我有一个输入,我想通过标准输入提供给程序。它是一行,其中包含一定数量的整数。示例:

 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.

由于我要做的只是创建地图,所以我不需要一次读取整个输入并将其存储在内存中。 有没有更好的方法可以做到这一点,我一次只能读取一个整数并构建地图,而不必一次完整地读取列表?

谢谢!

1 个答案:

答案 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})