Python中集合的应用(set)

本文介绍了Python集合的基本操作,包括创建、增删改查元素,以及集合的符号操作如差集、交集和并集。通过示例展示了如何利用集合去除重复元素,以及从用户输入中删除集合中的特定元素。同时,还演示了如何处理两个列表的差异元素和共同元素。最后,文章提及了不同类型之间的转换,如将列表转换为集合。
摘要由CSDN通过智能技术生成

集合:set () 无序不重复的元素

# 声名集合:set
s1 = set()
print(type(s1))

<class ‘set’>

list1 = [3,5,8,6,4,5,9,8,4,3]
s2 = set(list1)
print(s2)

{3, 4, 5, 6, 8, 9}

集合的增删改查

# add() 添加一个元素
s1.add('hello')
s1.add('小猪佩琪')
s1.add('lucy')
print(s1)

{‘小猪佩琪’, ‘hello’, ‘lucy’}

update() 添加元组/列表等

t1 = ('林志玲','言承旭')
s1.update(t1)
print(s1)

{‘林志玲’, ‘言承旭’, ‘小猪佩琪’, ‘hello’, ‘lucy’}

# 删除 remove() discard()  pop()  clear()
s1.remove('言承旭')
print(s1)

{‘林志玲’, ‘小猪佩琪’, ‘hello’, ‘lucy’}

# 使用 remove() 删除集合元素,如果元素不存在则报KeyError异常
s1.remove('道明寺')
print(s1)

KeyError: ‘道明寺’

# discard()  类似remove()  在移除不存在的元素时不会报错
s1.discard('道明寺')
print(s1)

{‘林志玲’, ‘小猪佩琪’, ‘hello’, ‘lucy’}

# pop() 随机删除一个元素,一般会删除集合的第一个元素
s1.pop()
print(s1)

{‘小猪佩琪’, ‘hello’, ‘lucy’}

# clear() 清空集合中的元素
s1.clear()
print(s1)

set()

# 案例:产生10个 1-20 的随机数,去除里面的重复项
import random
list1=[]
s1=set()
for i in range(10):
    ran = random.randint(1,20)
    list1.append(ran)
    
s1.update(list1)

print(list1)
print(s1)

[7, 5, 5, 17, 5, 9, 20, 12, 11, 8]
{5, 7, 8, 9, 11, 12, 17, 20}

# 案例:键盘输入一个元素,将此元素从不重复的集合中删除
num = input('请输入一个数字:')
s1.discard(num)

print('返回删除后结果',s1)

请输入一个数字:3
返回删除后结果 {5, 7, 8, 9, 11, 12, 17, 20}

# 其他:符号操作 
print(5 in s1)

True

# -(差集合)   &(交集)   |(并集)
set1 = {2,3,4,5,6}
set2 = {5,6,7}

print(set1 - set2)
print(set1 & set2)
print(set1 | set2)

{2, 3, 4}
{5, 6}
{2, 3, 4, 5, 6, 7}

已知两个列表:
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素

# 对称差集 (s1|s2)-(s1&s2)  ^ () 求对称差集,找出两个列表中的不同元素
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]

set1=set(l1)
set2=set(l2)

print('两个列表的不同元素:',(set1|set2)-(set1&set2))
print('两个列表的共同元素:',set1&set2)

两个列表的不同元素: {0, 1, 3, 7}
两个列表的共同元素: {9, 2, 5}

result = set1 ^ set2
print(result)

{0, 1, 3, 7}

# difference_update() 差集并赋值
# intersection_update()  交集并赋值
# union_update()  并集并赋值
# symmetric_difference_update()  对称差集并赋值

set1.difference_update(set2)
print(set1)

{0, 1, 3}

*不可变的类型:int, str, float, 元组
可变的类型:字典,列表,集合

类型转换:
str()
int()
list()
dict()
set()
tuple()

str - -> int(),list(),set(),tuple()
list - - > set(),tuple(),dict()[(key,value),(key,value),…]
tuple - - > list(),set()
set - - > list()
dict - - > list()[只是将key放入了列表中]*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值