Python基础:集合/关系测试/并集,交集,异/等

本文介绍了Python中的集合基础知识,包括集合的无序和不重复特性,以及如何通过set()创建集合。讨论了删除元素的方法如remove()、clear()和pop(),以及集合的增加操作add和update。此外,还讲解了并集、交集、差集和对称差集的计算,以及关系测试。最后,提到了集合在字典键值互换和计数排序中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合:用括号{ }表示
最重要的特点是:1,无序性;2,不重复性。
不可通过下标访问
不可通过下标修改
基本功能:基本功能包括关系测试和消除重复元素

1,创建
使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个

a=[1,2,3,4,5,4,3,2,1]
b=set(a)
print(b) #{1,2,3,4,5}
a=set(199,2,3,34,6,777)  #  输出错误  只能一个参数
print(a)

#a=set(‘123321’)
#print(a) #输出为{‘2’, ‘3’, ‘1’} 拆开

2,删除
remove()删除指定元素;clear()清空整个集合 pop()随机删除
a.remove()

a={11,2,3,'b'}
a.remove(3)
print(a)
#a.remove(999)  #remove不存在数据时报错
a.discard(999)   #discard不存在数据时不报错

,

  a={11,2,3,'b'}
    b=a.pop() #集合无序,故无下标,故随机删除
    print(b)

3,集合增加 add,update

a={1,2,3}
a.add('abc')
print(a)  #{'abc', 1, 2, 3}

a={11,2,3}
a.update('23a')
print(a)  #{2, 3, '2', 11, '3', 'a'}

4,计算 union并集 intersection交集 difference不同 symmetric_difference异

a={1,2,3,4,5}
b={4,5,6,7,8}
c=a.union(b)
print(c)   #{1, 2, 3, 4, 5, 6, 7, 8}
print(a)   #{1, 2, 3, 4, 5}
print(b)   #{4, 5, 6, 7, 8}
#
d=a.intersection(b)  #求交集
print(d)   #{4, 5}
#
e=a.difference(b)
print(e)           #{1, 2, 3}  #返回a中存在的,b中不存在的
e=b.difference(a)
print(e)           #{8, 6, 7}  #返回b中存在的,a中不存在的
#
f=a.symmetric_difference(b)
print(f)           #{1, 2, 3, 6, 7, 8}  #求异

5,关系测试

a={1,2,3,4,5}
b={1,2,3}
c=a.issuperset(b)  #检测a是b的超集(父集)
print(c)           
c=a.issubset(b)    #检测a是b的子集
print(c)
c=a.isdisjoint(b)   #检测是否互异
print(c)

输出:
True
False
False

6,运算符 无+

a={1,2,3,4,5}
b={1,2,7}
c=a-b
print(c)
c=a|b    #c=a.union(b)
print(c)
c=a&b
print(c)
print(1 in a)
print(1 not in b)
print(a==b)
print(a!=b)

输出:
{3, 4, 5}
{1, 2, 3, 4, 5, 7}
{1, 2}
True
False
False
True

乱入:
#字典键值互换

a={1:20,3:40,5:60}
b={v:k for k,v in a.items()}
print(b)

利用集合简易求元素出现个数,排序

a=[1,2,3,1,2,2,2,3]
for d in set(a):
print(d,'出现%d次'%(a.count(d)))

L = [3, 1, 2, 1, 3, 4]
T = list(set(L))
T.sort(key=L.index)
print(T)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值