python1-集合set

Why - 为什么要用set?

写了很多python的程序却很少用到set,因为list功能太强大,大多数时候都能用list解决,就没想到用set。实际上以后能用set最好用set
做leetcode发现需要标记visited,直接访问过的元素丢到集合set里,再次访问element是否in集合set来判断是否visited或者立个visited flag也可以。

What - 什么是set?

python中set是一个无序 不重复元素集;基础功能包括关系测试membership和消除重复元素。
set的功能类似于dict和list的中间体,sets 支持 x in set、 len(set)、和 for x in set,使用这些功能时使用set比list好。

集合set的基本操作

1.初始化

list用 [ ], set,dictionary用 { }

>>>set('hello')
set(['h', 'e', 'l', 'o'])
>>>{'h','e','l','o'}
set(['h', 'e', 'l', 'o'])
>>> test = set()

2.增删

  • add(x) 用于增加一个元素值
>>>test.add(1)
  • update([]) 用于增加多个元素值,参数为list.
>>>test.update([1,2,3])
  • discard(x) 删除单个元素 (不会抛出异常)
>>>test.discard(1)
  • remove(x) 删除单个元素 (x不在,会抛出KeyError错误)
>>>test.remove(1)

3.集合操作

  • 并集:set.union(s),也可以用a|b计算
  • 交集:set.intersection(s),也可以用a&b计算
  • 差集:set.difference(s),也可以用a-b计算

4.包含关系

两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:

  • set.isdisjoint(s):判断两个集合是不是不相交
  • set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
  • set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b

你可能感兴趣的:(python1-集合set)