计算每个成绩在文件中出现的次数

时间:2013-12-05 04:17:25

标签: python

我正在尝试打印每个成绩出现在文件中的次数。 得分= [89,45,67,78,98,0] *这可以改变不同的文件,可以获得更多的数字等。

低分和高分已经被弄清楚了。我只需要显示它们之间的分数。 我错过了什么? 它不计算数字,只打印出来......

38: 0

39: 0

40: 0

41: 0

42: 0

43: 0

44: 0

45: 0

46: 0

47: 0

48: 0

49: 0

50: 0

51: 0


52: 0

53: 0

54: 0

55: 0

56: 0

57: 0

58: 0

59: 0

60: 0

61: 0

62: 0

63: 0

64: 0

65: 0

66: 0

67: 0

68: 0

69: 0

70: 0

71: 0

72: 0

73: 0

74: 0

75: 0

76: 0

77: 0

78: 0

79: 0

80: 0

81: 0

82: 0

83: 0

84: 0

85: 0

86: 0

87: 0

88: 0

89: 0

90: 0

91: 0

92: 0

93: 0

任何代码都是:

def histogram(score, low, high):
    e = int(low)
    o = int(high)
    for i in range(e, o):
        print(str(i)+": "+str(score.count(i)))
    print()

2 个答案:

答案 0 :(得分:3)

不确定这是否是您要找的。 “列表的频率”

import collections
score = [89, 45, 67, 78, 98, 0]
counter=collections.Counter(score)

print(counter)
# Counter({0: 1, 98: 1, 67: 1, 89: 1, 45: 1, 78: 1})

print(counter.most_common())
# [(0, 1), (98, 1), (67, 1), (89, 1), (45, 1), (78, 1)]

答案 1 :(得分:2)

您的得分数组是一个字符串列表。将其映射到整数列表:

score = map(int, score)

或计算每一步的字符串值:

print(str(i)+": "+str(score.count(str(i))))