python必会系列之 集合的基本用法

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}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值