intersection(…)
Return the intersection of two or more sets as a new set.
返回一个由若干个集合经过交集运算后得到的新交集,可以传入多个迭代器类型的参数。即可以传递Tuple、List、、String、Dictionary、Set等类型参数。
集合之间求交集
In [59]: s1
Out[59]: {1, 2, 3, 'a', 'b'}
In [60]: s2
Out[60]: {3, 4, 5, 'b', 'c', 'd'}
In [61]: s3 = set([1,3,8,9,10,'d''e','f'])
In [62]: s4 = s1.intersection(s2,s3)
In [63]: s4
Out[63]: {3}
1
2
3
4
5
6
7
8
9
10
11
12
注意:也可以使用逻辑与运算符 ‘&’
In [28]: s3 = s1 & s2
In [29]: s3
Out[29]: {3, 'b'}
1
2
3
4
集合和列表求交集
In [64]: li
Out[64]: [1, 2, 3, 1, 1, 2, 'a', 'b', 'a']
In [65]: s4 = s1.intersection(li)
In [66]: s4
Out[66]: {1, 2, 3, 'a', 'b'}
1
2
3
4
5
6
7
集合和元组求交集
In [67]: tup = (2,'a','c')
In [68]: s4 = s1.intersection(tup)
In [69]: s4
Out[69]: {2, 'a'}
1
2
3
4
5
6
集合和字符串求交集
注意:只能以String中的字符进行相交运算,不能与String的数字做运算。
In [70]: str = '123abc'
In [71]: s4 = s1.intersection(str)
In [72]: s4
Out[72]: {'a', 'b'}
In [79]: s1
Out[79]: {1, 2, 3, 'a', 'b'}
1
2
3
4
5
6
7
8
9
集合和字典求交集
注意:只能与字典中的Key进行相交运算。
In [79]: s1
Out[79]: {1, 2, 3, 'a', 'b'}
In [80]: dic = {1:'name',2:'age'}
In [81]: s4 = s1.intersection(dic)
In [82]: s4
Out[82]: {1, 2}
1
2
3
4
5
6
7
8
9
intersection()与intersection_update()的区别
intersection_update(…)
Update a set with the intersection of itself and another.
更新一个经过相交后的集合给自己。
注意:当我们希望将两个对象相交后的结果更新给其中一个操作对象时,建议使用intersection_update()函数,这个函数使用原位操作的方法实现,拥有更低的资源消耗。但是intersection_update()函数是没有返回值的,即不能将结果赋值给一个新的变量。