Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 20, 2014 08:15:36

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Создать списки в цикле

EvgenKlim
Что делает оператор “|=” ?Не могу найти описание
“|” это OR, но как понять “|=” ?
В контексте множеств означает “объединить множества и присвоить результат”.

EvgenKlim
Вроде правильно работает, по крайней мере выдает то что нужно) Если и есть какие-н ошибки, то я их не вижу. Сортировка уже лишняя, забыл удалить.
К примеру, если всего лишь переименовать scout1 в zcout1, получалось вот что:
[['dr101', 'mr99', 'out00'], ['scout3', 'zcout1', 'scout2', 'scout4'], ['scout4', 'sscout', 'super']]

Отредактировано Shaman (Июнь 20, 2014 08:19:45)

Офлайн

#2 Июнь 20, 2014 08:34:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создать списки в цикле

Не универсально, но на данных ТСа работает

s = ["dr101-mr99", "mr99-out00", "dr101-out00", "scout1-scout2", "scout3-scout1", "scout1-scout4", "scout4-sscout", "sscout-super"]
s = map(lambda x: set(x.split("-")), s)
res = s[:1]
for pair in s:
    for r in res:
        if r.intersection(pair):
            r.update(pair)
            pair = None
            break
    if pair:
        res.append(pair)
print res



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version