Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2011 16:44:35

ptax
От:
Зарегистрирован: 2010-09-18
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчет дубликатов

Что то я сегодня туплю а сделать нужно.
Как подсчитать количество дубликатов.
есть файл в нем строки вида
17:51
17:51
17:51
17:51
17:51
17:51
17:48
как получить на выходе
17:51:6
17:48:1

пишу примерно такой код. пытался и другие варианты но что то не захотело работать

file_input  = open('test.txt')
file_input2 = open('test.txt')

file_read = file_input.read()

file_list = file_read.split(",")
data_list = []
for i in file_input2:
i = str('\n' + i.strip())
print i
key = file_list.index(i)
data = '{0}${1}\n'.format(i,key)

data_list.append(data)



Отредактировано (Март 12, 2011 16:44:59)

Офлайн

#2 Март 12, 2011 17:11:21

ptax
От:
Зарегистрирован: 2010-09-18
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчет дубликатов

Нашел готовое решение может кому пригодится

from sets import Set
#
def countDuplicatesInList(dupedList):
uniqueSet = Set(item for item in dupedList)
return [(item, dupedList.count(item)) for item in uniqueSet]
#
lst = ['I1','I2','I1','I3','I4','I4','I7','I7','I7','I7','I7']
print countDuplicatesInList(lst)



Офлайн

#3 Март 12, 2011 21:10:31

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Подсчет дубликатов

def DupCount(li):
d={}
for i in li:
v=d.get(i,0)
d[i]=v+1
return d

print DupCount([1,1,1,2,2,3,4,4,4,4])
Для больших последовательностей будет поэффективнее



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version