Ответ 1
s.union(r)
- новое множество с элементами из s
и r
. ссылка Вам нужно изменить
s.union(r)
в
s = s.union(r)
или, используйте set.update
.
Я понимаю, что любое union
набора python с пустым множеством приведет к самому себе. Но некоторые странные поведения я обнаруживаю, когда union
внутри цикла for.
num= set([2,3,4])
emp= set()
print num|emp
>>>set([2, 3, 4])
s = set()
inp = ["dr101-mr99","mr99-out00","dr101-out00","scout1-scout2","scout3- scout1","scout1-scout4","scout4-sscout","sscout-super"]
for ele in inp:
r = set(ele.split("-"))
print r
s.union(r)
print s
>>>set(['mr99', 'dr101'])
set(['out00', 'mr99'])
set(['out00', 'dr101'])
set(['scout1', 'scout2'])
set(['scout1', 'scout3'])
set(['scout4', 'scout1'])
set(['scout4', 'sscout'])
set(['super', 'sscout'])
set([])
кто-нибудь может сказать мне, почему последний набор s пуст? является ли вывод, который должен быть каждый уникальный элемент в множестве?
s.union(r)
- новое множество с элементами из s
и r
. ссылка Вам нужно изменить
s.union(r)
в
s = s.union(r)
или, используйте set.update
.