我知道,任何带有空集的python设置union都会导致自身生成。但是当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.union(r)是一个集,其中包含sr中的元素。 reference您需要更改

s.union(r)


s = s.union(r)

或者,使用 set.update

关于python - 如何正确结合集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31882916/

10-12 00:39
查看更多