集合与元组和列表相似都用于做容器,集合(set)是一个无序的元素序列。在内部可以放一些子元素,但集合有三特殊特点:子元素不重复 、 子元素必须可哈希。
提示:目前可哈希的数据类型 int/str/tuple;不可哈希的类型tuple/list/set 。
主要内容:
1.创建集合
set1 ={"python","go","java","C"}print(set1)#输出:{'C', 'python', 'go', 'java'}print(type(set1))#输出:<class 'set'>
2.获取集合的长度
set1 ={"python","go","java","C"}print(len(set1))#输出:4
3.add()添加元素
set1 ={"python","go","java","C"}
set1.add("C++")print(set1)#输出:{'python', 'C', 'go', 'java', 'C++'}
4.discard()删除元素
set1 ={"python","go","java","C"}
set1.discard("go")print(set1)#输出:{'python', 'java', 'C'}
5.&、intersection()交集
set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql","C","go"}
set3 =set1 & set2print(set3)#输出:{'go', 'C'}set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql","C","go"}
set3 =set1.intersection(set2)print(set3)#输出:{'go', 'C'}
6.|、union() 并集
set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql"}print(set1 | set2)#输出:{'C#', 'C++', 'mysql', 'java', 'go', 'C', 'python'}set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql"}print(set1.union(set2))#输出:{'C', 'mysql', 'python', 'java', 'C++', 'C#', 'go'}
7.-、difference() 差集 set1中有且set2中没有的值
set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql","C"}print(set1-set2)#输出:{'java', 'python', 'go'}set1 ={"python","go","java","C"}
set2 ={"C++","C#","mysql","C"}print(set1.difference(set2))#输出:{'java', 'python', 'go'}
8.其他数据列席转化为集合类型set()
str1 ="python"print(set(str1))#输出:{'n', 'p', 'y', 'o', 't', 'h'}list1 =["python","go","java","C","python"]print(set(list1))#输出:{'go', 'java', 'C', 'python'}tup1 =("python","go","java","C")print(set(tup1))#输出:{'java', 'go', 'python', 'C'}ditc1 ={"name":"python","age":10}print(set(ditc1.keys()))#输出:{'age', 'name'}print(set(ditc1.values()))#输出:{'python', 10}print(set(ditc1.items()))#输出:{('name', 'python'), ('age', 10)}
9.循环set()
set1 ={"python","go","java","C"}for s in set1:
print(s)#输出:#java# C# go# python