Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 9, 2013 11:18:47

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Дубликат записи в списке

Уважаемы коллеги, подскажите как можно убрать дубликаты и оставить лишь одно первое значение.
Есть список

[("26'", '1 - 0'), ("50'", '2 - 0'), ("62'", '3 - 0'), ("64'", '4 - 0'), ("98'", '4 - 0'), ("190'", '5 - 0')]

Каким способом можно убрать (“64'”, ‘4 - 0’), (“98'”, ‘4 - 0’) и оставить первое значение (“64'”, ‘4 - 0’)?
Спасибо, что потратили на мой новичковый вопрос своё ценное время.

Отредактировано paraman (Авг. 9, 2013 11:20:21)

Офлайн

#2 Авг. 9, 2013 11:46:48

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Дубликат записи в списке

from itertools import groupby
from operator import itemgetter
lst=[("26'", '1 - 0'), ("50'", '2 - 0'), ("62'", '3 - 0'), ("64'", '4 - 0'), ("98'", '4 - 0'), ("190'", '5 - 0')]
lst = [next(x[1]) for x in groupby(lst, key=itemgetter(1))]

Офлайн

#3 Авг. 9, 2013 12:29:53

paraman
Зарегистрирован: 2012-07-10
Сообщения: 170
Репутация: +  1  -
Профиль   Отправить e-mail  

Дубликат записи в списке


bismigalis
Спасибо

Офлайн

#4 Авг. 9, 2013 21:11:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Дубликат записи в списке

bismigalis
groupby(lst, key=itemgetter(1))
lst должен быть предварительно отсортирован



Офлайн

#5 Авг. 9, 2013 22:48:11

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Дубликат записи в списке

py.user.next верно, незнал

from itertools import groupby
from operator import itemgetter
lst=[("26'", '1 - 0'), ("50'", '2 - 0'), ("62'", '3 - 0'), ("64'", '4 - 0'), ("98'", '4 - 0'), ("190'", '5 - 0')]
lst.sort(key=itemgetter(1))
lst = [next(x[1]) for x in groupby(lst, key=itemgetter(1))]

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version