美文网首页
Python set 集合操作

Python set 集合操作

作者: eeert2 | 来源:发表于2020-04-25 23:44 被阅读0次

set集合是元素的聚集,具有无序唯一性两大特点。
常见的用途包括成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集并集差集与对称差集等等。

一、集合的构建

1.使用set([iterable])

如果没有传入可迭代对象iterable,则构建一个空的集合

  • 注意:不能通过{}来构建空集,因为这样创建的是一个空的字典。
data = set()

data.add('adc')
data.add('adc')
data.add('mid')
data.add('top')

# 存储是无序的,与添加的先后无关
# 自动去重
print(data)  # {'top', 'mid', 'adc'}

利用该构造函数,可以方便的对列表去重,set()对去重做了特别的优化,比我们自己遍历去重效率高的多。

words = ['top', 'mid', 'adc', 'top']

words = list(set(words))
print(words)  # ['adc', 'top', 'mid']  # 去重后不保证顺序

2.直接在{}中构建

data = {1, 3, 3, 5, 6}
print(data)  # {1, 3, 5, 6}

这种方式比第一种效率更高。

二、集合的成员检测 in

集合里的元素必须是可哈希的,所以在集合中查找元素会更高效,这也是设计集合的最主要目的,像集合的并集交集差集都是建立在此基础上。

虽然list列表也可以使用in关键字比较,但这是通过遍历比较的,效率与set不可同日耳语,如果数据中有大量的in判断,建议使用set()

  • x in s
    检测 x 是否为 s 中的成员。
  • x not in s
    检测 x 是否非 s 中的成员。

三、两个集合间的操作

  • set | other
  • union(others:Iterable)
    返回两个集合的并集
data = {1, 3, 3, 5, 6}
ret = data.union([9, 11, 13])  # union可以对任意可迭代对象求并集
print(ret)
  • set & other
  • intersection(others:Iterable)
    返回两个集合的交集
  • set - other
  • difference(others:Iterable)
    返回两个集合的差集

相关文章

网友评论

      本文标题:Python set 集合操作

      本文链接:https://www.haomeiwen.com/subject/yktrwhtx.html