set() 函数是python内置函数的其中一个,属于比较基础的函数。创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
class set([iterable])
参数说明:
- iterable -- 可迭代对象对象;
- 返回新的集合对象。
实例
>>>x = set('runoob')
>>> y = set('google')
>>> x, y
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除
>>> x & y # 交集
set(['o'])
>>> x | y # 并集
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u'])
>>> x - y # 差集
set(['r', 'b', 'u', 'n'])
list1=[1,2,3,4]
s=set(list1)
print(s)
#逐个遍历
for i in s:
print(i)
输出:
set([1, 2, 3, 4])
1
2
3
4
使用add(key)往集合中添加元素,重复的元素自动过滤
list1=[1,2,3,4]
s=set(list1)
print(s)
s.add(4)
s.add(5)
print(s)
输出:
set([1, 2, 3, 4])
set([1, 2, 3, 4, 5])
通过remove(key)方法可以删除元素:
list1=['a','b','zhang','kang']
s=set(list1)
print(s)
s.remove('zhang')
print(s)
输出:
set(['a', 'kang', 'b', 'zhang'])
set(['a', 'kang', 'b'])
set还可以像数学上那样求交集和并集
list1=['a','b','zhang','kang']
list2=['a','b','c','d']
s1=set(list1)
s2=set(list2)
#交集,使用&操作符
s3=s1&s2
#并集,使用|操作符
s4=s1|s2
print(s3)
print(s4)
输出:
set(['a', 'b'])
set(['a', 'c', 'b', 'd', 'zhang', 'kang'])
由于项在集合中只能存储一次,集合(set)可以用来把重复项从其他集合中过滤掉。直接把集合转换为一个集合(set),然后再转换回来即可
L = [1,2,1,3,2,4,5]
>>> set(L)
set([1, 2, 3, 4, 5])
>>> L = list(set(L))
>>> L
[1, 2, 3, 4, 5]