У меня есть счетчик частоты, чтобы просмотреть список раз и сказать, как часто появляется каждое число.Сначала я запускаю функцию удаления десятичных знаков, используя int()
.Я проверяю это с оператором печати внизу, он работает нормально.Но по какой-то причине, хотя частота возникает после того, как я изменил значения с int()
.Вот мой код, и я приведу некоторый вывод.
from itertools import groupby
times = [1.23, 1.23, 2.56, 1.23, 1.23, 1.23, 1.23, 1.5, 4.32, 5.3, 2.5, 5.7, 3.4, 8.9, 8.9, 8.9]
newtimes = []
lentimes = len(times)
for time in times:
#Rounds down every time
time = int(time)
#Adds time to new list
newtimes.append(time)
setTimes = list(set(newtimes))
freqlist = [len(list(group)) for key, group in groupby(newtimes)]
print(newtimes)
print(lentimes)
print(setTimes)
print("Freqlist is " + str(freqlist))
вывод выглядит примерно так:
[1, 1, 2, 1, 1, 1, 1, 1, 4, 5, 2, 5, 3, 8, 8, 8]
16
[1, 2, 3, 4, 5, 8]
Freqlist is [2, 1, 5, 1, 1, 1, 1, 1, 3]
Потребовалось некоторое время, чтобы выяснить, что случилось с выводом freqlist, он делает все правильно, но он делает времена, а не новые времена (где мы отбрасываем десятичные дроби), даже если это должно быть после того, как мы отбрасываем десятичные дроби.Есть идеи?Спасибо!