Próbuję wydrukować liczbę razy w pliku pojawi się każda klasa. Wynik = [89, 45, 67, 78, 98, 0] * Może to zmienić dla różnych plików, może uzyskać więcej liczb itp

Niska i wysokie wyniki zostały już wymienione. Muszę tylko wyświetlić wyniki między nimi. czego mi brakuje? Nie licząc liczb, po prostu wydrukuje to ...

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

Każdy kod to:

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
user3015970 5 grudzień 2013, 08:17

2 odpowiedzi

Najlepsza odpowiedź

Twoja tablica wyników to lista ciągów. Albo mapuj na liście liczb całkowitych:

score = map(int, score)

Lub policz wartość ciągu na każdym kroku:

print(str(i)+": "+str(score.count(str(i))))
2
megawac 5 grudzień 2013, 04:23

Nie jestem pewien, czy tego szukasz. "Częstotliwość listy"

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)]
3
Yeo 5 grudzień 2013, 04:27