Я пишу программу для сбора статистики по нескольким разам. Я хочу, чтобы результат выглядел как
11: 4
22: 3
33: 1
вместо того
11:4, 22:3, 33:1
потому что мне трудно читать.
Вот код, который у меня есть
#Copy solves here, in seconds, seperated by a comma for each solve
times = [11.9, 14.2, 17.3, 11.2 , 123.4]
#Blank list to copy modified solves into
newtimes = []
for time in times:
#Rounds down every time
time = int(time)
#Adds time to new list
newtimes.append(time)
#Sorts list lowest to highest
newtimes.sort()
#Gets length of new list, which is amount of solves
solves = len(newtimes)
#Set longest and shortest solve times
longestSolve = max(newtimes)
shortestSolve = min(newtimes)
timesfreq = {i:newtimes.count(i) for i in newtimes}
print(newtimes)
print(timesfreq)
print(solves)
print("Your longest solve was " + str(longestSolve) + " seconds and your shortest solve was " + str(shortestSolve) + " seconds")






просто сделай так:
for i in timesfreq.items():
print(i)
Это дает
(11, 2)
(14, 1)
(17, 1)
(123, 1)
Если вы хотите, чтобы это было именно так, как вы заявили:
for a,b in timesfreq.items():
print("{}: {}".format(a,b))
Один из способов сделать это однострочным:
>>> print('\n'.join([str(key) + ': ' + str(val) for key, val in timesfreq.items()]))
123: 1
17: 1
11: 2
14: 1
Вот хороший справочник для перебора пар ключ / значение в словаре: Перебор словарей с использованием циклов for
Отличное решение! Я все еще новичок, извините, если это был простой вопрос, но это именно то, что я хотел!