set set和list类似,拥有一系列元素。 区别:set里面的元素是不允许重复的,而list里面可以包含相同的元素;set里面的元素是没有顺序的。 创建set的方式是使用set(),并传入一个list,list的元素将会被转换成set的元素 set的元素区分字母大小写
s = set([1, 4, 3, 2, 5, 4, 2, 3, 1]) print(s) #{1, 2, 3, 4, 5} 读取元素 1 in s 添加元素
names = [] names_set = set(names) ##单个添加 names_set.add(‘Jenny’) names_set.add(‘Ellena’) print(names_set)##{‘Jenny’, ‘Ellena’} ##批量添加 new_names = [‘Jenny’, ‘Ellena’, ‘Alice’, ‘Candy’, ‘David’, ‘Hally’, ‘Bob’, ‘Isen’, ‘Karl’] names_set.update(new_names) print(names_set) ##{‘Bob’, ‘Hally’, ‘Ellena’, ‘Jenny’, ‘Candy’, ‘Isen’, ‘Karl’, ‘Alice’, ‘David’} 删除元素 L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] S = set([1, 3, 5, 7, 9, 11]) for elem in L: if elem not in S: S.add(elem) else: S.remove(elem) print(S) 不会报错的删除方法discard() 清除所有元素的方法clear() 集合的子集和超集 set提供方法判断两个set之间的关系,比如两个集合set,判断其中一个set是否为另外一个set的子集或者超集。
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
判断s1是否为s2的子集
s1.issubset(s2) # ==> True
判断s2是否为s1的超集
s2.issuperset(s1) # ==> True 判断集合是否重合 s1.isdisjoint(s2) # ==> False,因为有重复元素
s1 = set([1, 2, 3, 4, 5]) s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9]) flag = s1.isdisjoint(s2)## 判断 s1是否和 s2有重合元素 返回false if not flag: for elem1 in s1: if elem1 in s2:##将s1中元素与s2元素一一比对 print(elem1)##1 2 3 4 5 将重合元素打印出来