Найти - Пользователи
Полная версия: Подскажите самый "быстрый" вариант плз
Начало » Python для новичков » Подскажите самый "быстрый" вариант плз
1
Tucha
Есть очень большой список в котором очень много значений, все значения повторяются разное кол-во раз.
Нужно посчитать сколько у каждого значения повторений (все значения известны заранее!).
Самое быстрое, что я смог придумать, это единственный проход по списку с помощью for и добавлением в словарь ключа со значением 1, если такой ключ есть, соответственно 1+1 и так далее.
Вопрос: можно сделать, что то побыстрей этого варианта ?
И ещё маленький вопрос, есть ли смысл преобразовать список в кортеж перед итерацией ? В книгах которые я читал, пишут, что неизменяемые объекты быстрее обрабатываются.
4kpt_III
collections.Counter
Tucha
4kpt_III
collections.Counter
Одинаковая скорость, но всё равно спасибо, код уменьшился на одну строку
Да и вообще полезный модуль, в будущем пригодиться 100%
JOHN_16
Tucha
как на одну строку? Вы точно его правильно готовите?? Там все решение уходит в одну строку. Вот пример
>>> from collections import Counter
>>> d=range(10)+range(0, 20, 2)+range(30,0, -3)
>>> c = Counter(d)
>>> c
Counter({6: 3, 0: 2, 2: 2, 3: 2, 4: 2, 8: 2, 9: 2, 12: 2, 18: 2, 1: 1, 5: 1, 7:
1, 10: 1, 14: 1, 15: 1, 16: 1, 21: 1, 24: 1, 27: 1, 30: 1})
Tucha
JOHN_16
Tuchaкак на одну строку? Вы точно его правильно готовите?? Там все решение уходит в одну строку. Вот пример
Ну да, было две строки, стала одна == код уменьшился на одну строку
Rodegast
Так вроде недавно обсуждали: http://python.su/forum/topic/28208/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB