2013-12-05 2 views
1

Я пытаюсь напечатать количество раз, когда каждый класс появляется в файле. оценка = [89, 45, 67, 78, 98, 0] * Это может быть изменено для разных файлов, может получить больше чисел и т. Д.Count Количество раз, когда каждый класс отображается в файле

Результаты поиска и оценки уже определены. Мне нужно отображать оценки между ними. Что мне не хватает? Оно не считая числа, просто распечатав этот ...

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() 
+1

Является ли это ваш единственный код? Потому что проблема, похоже, не здесь. Вы пытались распечатать список «score»? –

+0

['89', '45', '67', '78', '98', '0'] вот что распечатывается, когда я печатаю список баллов – user3015970

+2

Попробуйте 'str (score.count (str (i))) Может быть, – megawac

ответ

2

Ваш массив баллов - это список строк. Либо отобразить его в список целых чисел:

score = map(int, score) 

Или посчитать значение строки на каждом шаге:

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

Лучшее преобразование в int; в противном случае 9> 89. – dstromberg

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)] 
+0

Спасибо за ответ, но Я не могу использовать библиотеку коллекций. С тех пор Мегавак помог мне. Еще раз спасибо – user3015970

Смежные вопросы