Python数据类型之集合

本文深入讲解了Python中集合的基本操作,包括格式定义、创建、增删改查、遍历及关系测试等。同时,介绍了集合如何进行类型转换,并探讨了枚举函数的使用。

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

目录

1.集合的格式

(1)变量名={元素1,元素2,元素3,......................}

(2)变量名=set(可迭代内容)

可迭代内容:字符串,列表 元组,字典

注意:

True会转换成数字 1 进行比较,False会转换成 0进行比较

集合是无序的

集合可以去重

2.创建一个空集合   set()

3.集合的增删改查

(1)增加操作

(2)删除操作

4.集合的遍历

5.集合的关系测试

6.int()   bool()   类型转换

7.枚举   enumerate


1.集合的格式

(1)变量名={元素1,元素2,元素3,......................}

set1 = {1, True, 'hello'}  # 集合是无序的
print(set1)
set1 = {1, True, 'hello world python', False, 0}  # True会转换成数字 1 进行比较,False会转换成数字 0 进行比较
print(set1)

(2)变量名=set(可迭代内容)

s = 'hello'
set1 = set(s)
print(set1)  # {'l', 'o', 'e', 'h'}
lst = [1, 2, 3]
set1 = set(lst)
print(set1)  # {1, 2, 3}
tup = (1, 2, 3)
set1 = set(tup)
print(set1)  # {1, 2, 3}
dic = {'name': 'zs', 'age': 10}
set1 = set(dic)
print(set1)  # {'age', 'name'}

 

可迭代内容:字符串,列表 元组,字典

                                ‘  ’    [  ]    (   )    {   }


注意:

  • True会转换成数字 1 进行比较,False会转换成 0进行比较

  • 集合是无序的

  • 集合可以去重


2.创建一个空集合   set()

使用set()内置函数

set1 = set()
print(type(set1))  # <class 'set'>
set1 = {}
print(set1)
print(type(set1))  # <class 'dict'>

3.集合的增删改查

(1)增加操作

add()随机添加
update() 
set1 = {'悟空', '八戒'}
print(set1)  # {'悟空', '八戒'}
set1.add('唐三藏')
print(set1)  # {'唐三藏', '悟空', '八戒'}
set2 = {'悟空', '白骨精'}
set1.update(set2)
print(set1)  # {'悟空', '白骨精', '唐三藏', '八戒'}

(2)删除操作

pop()随机删除一个元素
remove()删除指定内容
clear()清空集合中的所有内容
del把集合从内存中直接删除
# pop()   随机删除一个元素
# remove()   删除指定元素
# clear()    清除指定元素
# del    把集合从内存上直接删除,计算机会报错
set1 = {'悟空', '八戒', '唐三藏'}
print(set1)  # {'八戒', '悟空', '唐三藏'}
set1.pop()
print(set1)  # {'悟空', '唐三藏'}
set1.remove('悟空')
print(set1)  # {'唐三藏'}
set1.clear()
print(set1)  # set()
# del set1
# print(set1)#计算机会报错

4.集合的遍历

for循环来实现

set1 = {'悟空', '八戒', '唐三藏', '白骨精'}
for i in set1:
    print(i)
# 唐三藏
# 悟空
# 白骨精
# 八戒

 


5.集合的关系测试

关系测试符号方法解释
交集&intersection()获取两个集合的公共部分
反交集^symmetric_difference()获取两个集合除去公共部分以外的其余部分
并集|union()获取两个集合的全部内容
差集-difference(0 
子集<issubset()判断
超集>issuperset()判断

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 & set2)  # {3, 4}
print(set1.intersection(set2))  # {3, 4}
print(set1 ^ set2)  # {1, 2, 5, 6}
print(set1.symmetric_difference(set2))  # {1, 2, 5, 6}
print(set1 | set2)  # {1, 2, 3, 4, 5, 6}
print(set1.union(set2))  # {1, 2, 3, 4, 5, 6}
print(set1 - set2)  # {1, 2}
print(set1.difference(set2))  # {1, 2}
print(set2 - set1)  # {5, 6}
print(set2.difference(set1))  # {5, 6}
print(set1 < set2)  # False    判断set1是不是set2的子集
print(set1.issubset(set2))  # False   判断set1是不是set2的子集
print(set2 < set1)  # False   判断set2是不是set1的子集
print(set2.issubset(set1))  # False    判断set2是不是set1的子集
print(set1 > set2)  # False   判断set1是不是set2的超集
print(set1.issuperset(set2))  # False     判断set1是不是set2的超集
print(set2 > set1)  # False   判断set2是不是set1的超集
print(set2.issuperset(set1))  # False   判断set2是不是set1的超集

6.int()   bool()   类型转换

bool1 = True
num1 = int(bool1)
print(num1)  # 1   True------>1
bool1 = False
num1 = int(bool1)
print(num1)  # 0    False------->0
num1 = 10
bool1 = bool(num1)
print(bool1)
num1 = 0  # True    除0以外的全部数字------->True
bool1 = bool(num1)
print(bool1)  # False     0--------->False

7.枚举   enumerate

lst = ['a', 'b', 'c']
for i in enumerate(lst, start=5):
    print(i)
# (5, 'a')
# (6, 'b')
# (7, 'c')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值