set()是python的内置函数
,主要的作用是:创建一个无序不重复元素集
,可进行关系测试,删除重复数据
,还可以计算交集
、差集
、并集
等。
set()的特征:元素不重复、元素为不可变对象
1.删除重复数据
set()函数支持的数据类型有:列表、字符型、元组、字典
a=["a","b","a",1,2,3,1,"1"]
print("1.set()函数对列表去重:",set(a))
b="HelloWorld!HelloPython!"
print("2.set()函数对字符串去重:",set(b))
c=("xyz",1,"1",3.14,"xyz",1)
print("3.set()函数对元组去重:",set(c))
d={"a":"chen","b":"qian","a":"chen"}
print("4.set()函数对字典去重:",set(d.values()))
1.set()函数对列表去重: {'b', 1, 2, 3, 'a', '1'}
2.set()函数对字符串去重: {'t', 'H', 'r', 'l', 'y', 'h', 'e', '!', 'd', 'W', 'P', 'n', 'o'}
3.set()函数对元组去重: {1, 3.14, 'xyz', '1'}
4.set()函数对字典去重: {'qian', 'chen'}
技巧:
1.1set()函数对嵌套的列表,元组嵌套列表不支持,需要把嵌套里面的列表变成字符串类型,才可以操作
e=[["a","b"],["a","b"],[1,2,3],[1,"1"]]
ee = []
for i in e:
ee.append(str(i))
print("5.set()函数对嵌套列表去重:",set(ee))
5.set()函数对嵌套列表去重: {"['a', 'b']", '[1, 2, 3]', "[1, '1']"}
1.2判断元素是否在set集合里面:in/not in
a=["a","b","a",1,2,3,1,"1"]
print("b元素在set集合里面:","b"in set(a))
b元素在set集合里面: True
a=["a","b","a",1,2,3,1,"1"]
print("w元素在set集合里面:","w"in set(a))
w元素在set集合里面: False
1.3判断set集合里面的元素是否有重复的,可以用len()函数
a=["a","b","a",1,2,3,1,"1"]
if len(set(a))==len(a):
print("a列表里面没有重复的元素!pass")
else:
print("a列表里面有重复的元素!fail")
a列表里面有重复的元素!fail
**2.取交集:**取a集合和b集合的交集intersection()
a={"a","b","a",1,2,3,1,"1"}
b={1,2,3.14,"a","c"}
temp=a.intersection(b)
print("a和b的交集:",temp)
a和b的交集: {1, 'a', 2}
3.差集:取a集合和b集合的差集difference()
a={"a","b","a",1,2,3,1,"1"}
b={1,2,3.14,"a","c"}
temp=a.difference(b)
print("a和b的差集:",temp)
a和b的差集: {'1', 3, 'b'}
4.并集:取a集合和b集合的并集union()
a={"a","b","a",1,2,3,1,"1"}
b={1,2,3.14,"a","c"}
temp=a.union(b)
print("a和b的并集:",temp)
a和b的并集: {1, 2, 3, 'c', 3.14, 'a', 'b', '1'}
5.集合转换成:字符串,列表,元组
num=set(range(4))
str_num=str(num)
list_num=list(num)
tuple_num=tuple(num)
print("1.str_num的数据类型:",type(str_num))
print("2.list_num的数据类型:",type(list_num))
print("3.tuple_num的数据类型:",type(tuple_num))
1.str_num的数据类型: <class 'str'>
2.list_num的数据类型: <class 'list'>
3.tuple_num的数据类型: <class 'tuple'>