我是Python的新手,我一直试图弄清楚如何计算一个数字出现在列表中的次数.我正在寻找的输出是这样的"7次发生2次,4次发生1次",但我遇到的问题是我正在打印每个my_integer的输出.因此,如果我输入7,7,4作为输入,我得到"7发生2次,7次发生2次,4次发生1次"我正在考虑编写一种方法来检查计数返回后的数字的唯一性.
integers = input("Enter integers between 1 and 100: ")
split_integers = integers.split()
integer_list = [eval(x) for x in split_integers]
for my_integer in integer_list:
print(integer_list.count(my_integer))
Run Code Online (Sandbox Code Playgroud)
首先,您不需要eval()在此行中使用:
integer_list = [eval(x) for x in split_integers]
Run Code Online (Sandbox Code Playgroud)
你可以简单地int()在这里投
此外,由于您只计算数字,您甚至不需要将它们转换为整数开头.如果你需要用这些整数进行一些计算,那么转换只是必要的,但是由于你只计算独特的计算,所以保持它们为字符串在这里工作正常.
其次,如果您想要计算唯一的项目,您可以使用collections.Counter()此:
from collections import Counter
integers = input("Enter integers between 1 and 100: ")
split_integers = integers.split()
counts = Counter(split_integers)
for k, v in counts.items():
print(k, 'occurred', v, 'times')
Run Code Online (Sandbox Code Playgroud)
其工作原理如下:
Enter integers between 1 and 100: 7 7 4 7 4
7 occurred 3 times
4 occurred 2 times
Run Code Online (Sandbox Code Playgroud)
Counter()基本上是dict计数对象的子类.它将元素存储在字典中,其中元素作为键存储,其计数值作为值.这允许您计算唯一项目并存储它们出现的次数.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |