Python中集合set()的使用及处理

在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点

1.创建set

创建set需要一个list或者tuple或者dict作为输入集合

重复的元素在set中会被自动过滤

1 s1  = set([1,2,3,4,3,4,5])
2 print (s1)
3 
4 s2 = set((1,2,3,4,5,1,2,3))
5 print (s2)
6 
7 s3 = set({1:"good",2:"nice"})
8 print (s3)

以上代码运行结果为:

1 >>>{1, 2, 3, 4, 5}
2 >>>{1, 2, 3, 4, 5}
3 >>>{1, 2}

我们可以看到list和tuple中的重复元素被自动过滤了,并且dict转为set时只保存了key值,并没有保存value值

2.添加

1 s4 = set([1,2,3,4,5])
2 s4.add(6)
3 s4.add(3) #可以添加重复的,但是不会有效果
4 #s4.add([7,8,9]) set的元素不能是列表,因为列表是可变的,同理字典也不能添加至set
5 print (s4)

运行结果为:

1 >>>{1, 2, 3, 4, 5, 6}

3.插入

1 s5 = set([1,2,3,4,5])
2 s5.update([6,7,8])
3 s5.update((9,10))
4 s5.update("nice")
5 print (s5)

使用update()函数我们可以插入整个的list、tuple、字符串,将其打碎插入,运行结果为:

1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'c', 'n', 'e', 'i'}

我们可以看到插入的元素都被打碎,并且无序的插入了set中

4.删除

1 s6 = set([1,2,3,4,5])
2 s6.remove(3)
3 print (s6)

运行结果为:

1 >>>{1, 2, 4, 5}

5.遍历

set是没有索引的,但我们同样可以用for对set进行遍历

1 s7 = set(['n', 'i', 'c', 'e'])
2 for i in s7:
3     print (i)

运行结果为:

1 >>>1 c
2 >>>2 n
3 >>>3 e
4 >>>4 i

注意for返回的结果同样是无序的

6.set的enumerate

1 for index,data in enumerate(s7):
2     print (index,data)

返回结果为:

1 >>>0 c
2 >>>1 n
3 >>>2 e
4 >>>3 i

结果为无序的

7.set的交集与并集

 1 #交集
 2 s8 = set([1,2,3,4])
 3 s9 = set([3,4,5,6])
 4 a1 = s8 & s9
 5 print (a1)
 6 print (type(a1))
 7 #并集
 8 a2 = s8 | s9
 9 print (a2)
10 print (type(a2))

运行结果为:

1 {3, 4}
2 <class 'set'>
3 {1, 2, 3, 4, 5, 6}
4 <class 'set'>
原文地址:https://www.cnblogs.com/weiwenliang/p/10590403.html