Найти - Пользователи
Полная версия: Создать списки в цикле
Начало » Python для новичков » Создать списки в цикле
1 2
Shaman
EvgenKlim
Что делает оператор “|=” ?Не могу найти описание
“|” это OR, но как понять “|=” ?
В контексте множеств означает “объединить множества и присвоить результат”.

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