python python-2.7 for-loop set union

python - Cómo unir adecuadamente con el set.



python-2.7 for-loop (1)

s.union(r) es un nuevo conjunto con elementos de s r . reference necesitas cambiar

s.union(r)

a

s = s.union(r)

o, use set.update .

Entiendo que cualquier union conjunto de python con conjunto vacío resultaría en sí misma. Pero detecto algún comportamiento extraño cuando la union está dentro de un bucle for.

se ve bien

num= set([2,3,4]) emp= set() print num|emp >>>set([2, 3, 4])

confuso

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([])

¿Alguien podría decirme por qué el último set s está vacío? ¿Se supone que la salida es cada elemento único en el conjunto?