python容器 set

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 将重合元素打印出来

猜你喜欢

转载自blog.csdn.net/angelsweet/article/details/109194816