Форум сайта python.su
0
n = int(input()) data = [] for x in range(0,n): data.append(input().split(" ")) num = [x for sublst in data for x in sublst if x.isdigit()] print(max(set(num), key=num.count))
Офлайн
253
max “перебирает” элементы из итератора по множеству (set) применяет к ним num.count те вычисляет num.count(element). А это число раз которое в списке встречается element.Оно получается последовательным перебором списка. Далеко не самое быстрое и простое решение.
http://stackoverflow.com/questions/2161752/how-to-count-the-frequency-of-the-elements-in-a-list
Я буду считать что данные берутся из файла, в жизни никогда не видел чтобы кто-то эту ахинею руками вводил.
import collections num=filter(lambda x:x.isdigit(),open("a.dat").read().split()) print(collections.Counter(num).most_common(1))
Отредактировано doza_and (Май 25, 2013 20:13:10)
Офлайн
0
doza_and
max “перебирает” элементы из итератора по множеству (set) применяет к ним num.count те вычисляет num.count(element). А это число раз которое в списке встречается element.Оно получается последовательным перебором списка. Далеко не самое быстрое и простое решение.http://stackoverflow.com/questions/2161752/how-to-count-the-frequency-of-the-elements-in-a-listЯ буду считать что данные берутся из файла, в жизни никогда не видел чтобы кто-то эту ахинею руками вводил.
Офлайн
253
sanya_rndОн делает значения уникальными
зачем тогда нужен
set([1,1,2,1,2])->set(1,2)
def II(): while 1: for i in input().split(): if i.isdigit() yield i a={} for i in II(): if i in a: a[i]+=1 else: a[i]=0 print(max(a.items(),key=lambda x:x[1]))
Отредактировано doza_and (Май 26, 2013 09:01:31)
Офлайн
0
doza_and
Он делает значения уникальными
Офлайн
253
sanya_rndВнутри set нет количества элементов. set организован как массив (доступ по индексам) но в нем могут быть большие дырки. Если в set второй раз добавить элемент, то ничего не произойдет, добавление как-бы игнорируется.
сохраняет кол-во этих одинаковых элементов
Офлайн