1:集合的申明(如何定义一个集合)
##集合的关键字为set,集合的最大的特点就是不能有重复的元素
s1 = set() ##创建空集合,只能用set
s1 = {1,2,3} ##字典 {key:value,key:value} 集合 {元素1,元素2,元素3}
例题:将一个列表进行快速的去重
###给列表去重排序的方法:
list1 = [1,4,5,2,2,4,5,7,3,6,8]
set1 = set(list1) ##将一个列表转换成一个集合进行去重操作,并且如果列表中都是数字的话还会进行一个排序的操作
list2 = list(set1) ##将得到的列表重新转换成一个列表
print(list2)
{1, 2, 3, 4, 5, 6, 7, 8}
[1, 2, 3, 4, 5, 6, 7, 8]
1:列表的添加操作
add命令
s1 = set()
s1.add("hello")
s1.add("小猪佩奇")
print(s1)
{'hello', '小猪佩奇'}
update操作,可以一次添加多个操作
s1 = set()
s1.add("hello")
s1.add("小猪佩奇")
print(s1)
s2 = {"yz","超级赛亚人"}
s1.update(s2) ##随机插入的
print(s1)
{'hello', '小猪佩奇'}
{'hello', '超级赛亚人', 'yz', '小猪佩奇'}
2:集合的删除操作
1:remove方法,指定需要删除的元素
s1= {'hello', '超级赛亚人', 'yz', '小猪佩奇'}
s1.remove('yz')
print(s1)
{'超级赛亚人', '小猪佩奇', 'hello'}
2:pop方法:随机删除,但时一般都删除第一个元素
s1= {'hello', '超级赛亚人', 'yz', '小猪佩奇'}
s1.pop()
print(s1)
{'小猪佩奇', 'yz', 'hello'}
3:clear方法 清空集合
s1= {'hello', '超级赛亚人', 'yz', '小猪佩奇'}
s1.clear()
print(s1)
set()
例题1:产生10个1~20的随机数,并且去除里面的重复项
import random
list1 = []
for i in range(20):
num = random.randint(1,20)
list1.append(num)
list2 = list(set(list1))
print(list1)
print(list2)
##使用if判断语句也可以,判断每次随机产生的数据是否已经在列表中了
[1, 11, 18, 1, 18, 16, 6, 14, 19, 6, 11, 15, 18, 7, 15, 11, 5, 5, 17, 9]
[1, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19]
列表的差集 (- )difference 在set2中却不在set1中
set1={1,2,3,4,5,6}
set2={1,2,3,4,5,6,7,8}
set3 = set2 -set1
print(set3)
set4= set2.difference(set1)
print(set4)
{8, 7}
{8, 7}
列表的交集(&) intersection
set1={1,2,3,4,5,6}
set2={1,2,3,4,5,6,7,8}
set3 = set2 & set1
print(set3)
{1, 2, 3, 4, 5, 6}
set1={1,2,3,4,5,6}
set2={1,2,3,4,5,6,7,8}
set3=set2.intersection(set1)
print(set3)
{1, 2, 3, 4, 5, 6}
集合的并集 (|)union
set1={1,2,3,4,5,6}
set2={1,2,3,4,5,6,7,8}
set3 = set1 | set2
print(set3)
{1, 2, 3, 4, 5, 6, 7, 8}
set1={1,2,3,4,5,6}
set2={1,2,3,4,5,6,7,8}
set3 = set2.union(set2)
print(set3)
{1, 2, 3, 4, 5, 6, 7, 8}
对称差集 (^)
symmetric_difference()
两个集合中的不同的元素
例题:找出两个列表中的相同元素和不同元素
1:找出相同的元素
list1=[1,3,4,5,6,7,8]
list2=[2,4,5,6,8,3,1,5]
s1 = set(list1)
s2 = set(list2)
s3 = s2 & s1
list3 = list(s3)
print(list3
[1, 3, 4, 5, 6, 8]
2:找出两个列表中不同的元素
list1=[1,3,4,5,6,8,7]
list2=[2,4,5,6,8,3,1,5]
s1 = set(list1)
s2 = set(list2)
s3 = s2 ^ s1
list3 = list(s3)
print(s3)
{2, 7}