对python数据类型的使用(下)

本文详细介绍了Python中集合的使用方法,包括交集、并集、差集和对称差集,以及元组的基础操作如空元组、拆包和迭代。此外,还讲解了字典的创建、查找、修改和常用方法如`setdefault`和`update`。

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

这篇文章是连接着上篇的文章的,这篇文章是对python集合、元组、字典进行详解(补个大纲,怕读友们不知道这是讲啥的,我尽量弄的条理清晰)

1.4 集合的使用方法

#集合重复的只留一个;集合是无序的
x = {1, 2, 3, 4, 5, 6, 2, 3, 6}
print(x)  #结果为{1,2,3,4,5,6}
集合的运算

set1&set2 交集
set1|set2 并集
set1-set2  set1集合中有的,set2集合中没有的
set2-set1  set2集合中有的,set1集合中没有

1. 交集:使用“&”操作符,返回两个集合中共有的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {1, 3, 6, 7, 8}
print(set1 & set2)  #运行结果为 {1, 3}
2. 并集:使用“|”操作符,返回两个集合中所有不重复的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {1, 3, 6, 7, 8}
print(set1 | set2)  #运行结果为 {1, 2, 3, 4, 5, 6, 7, 8}
3. 差集:使用“-”操作符,返回第一个集合中存在但第二个集合中不存在的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {1, 3, 6, 7, 8}
print(set1 - set2)  #运行结果为 {2, 4, 5}
4. 对称差集:使用“^”操作符,返回两个集合中不同的元素。
set1 = {1, 2, 3, 4, 5}
set2 = {1, 3, 6, 7, 8}
print(set1 ^ set2)  #运行结果为 {2, 4, 5, 6, 7, 8}

以上是几种常用的集合方法 

1.5 元组的使用方法

空元组
yz = ()
print(type(yz))  #输出结果为 <class 'tuple'>
tu = (1)
yz = (1,)
print(type(tu))  #<class 'int'>
print(type(yz))  #<class 'tuple'>
元组拆包

拆包:元组可以同时赋值给多个变量,只要变量个数不超过元组长度,变量前面加上*则可以将多余元素都接收,并返回为一个列表

下面给大家演示一个简单的示例:

tu = ("张三", "李四", "王五")
zs, ls, ww = tu
print(zs)  #结果为:张三
print(ls)  #结果为:李四
print(ww)  #结果为:王五


tu = ("张三", "李四", "王五")
zs, *ls= tu
print(zs)  #结果为:张三
print(ls)  #结果为:['李四', '王五']

这里的拆包就是把一个整体拆包为几个单独的个体,和拼接刚好相反 

元组的迭代:可以遍历元组中的每个元素。
t = (1, 2, 3)
for i in t:
print(i)  # 输出: 1、2、3

这个是通用的方法,字符串、列表等也可以使用这个方法 

成员资格(in):使用in关键字检查元组中是否存在某个元素
t = (1, 2, 3)
print(1 in t)  # 输出: True

查看元素是否在元组里,和上面元组迭代一样,也是通用方法 

1.6 字典的使用

认识字典
dict 字典
字典的元素使用{}包裹,里面的元素是一个个的键对值
zs:"张三"  键:值
特点:键和值的映射结构
键必须是一个不可变的数据类型,且唯一,如果重复则会覆盖:字符串,数值,元组,列表是不可变的
;值是任意的数据类型

#创建一个字典
cls18 = {"zs": "张三", "ls": "李四", "ww": "王五"}
print(cls18, type(cls18))  #结果为 {'zs': '张三', 'ls': '李四', 'ww': '王五'} <class 'dict'>
print(cls18["zs"])  #结果为 张三
将其他数据类型转化为字典类型(这个方法是通用的,也可以转化为其他数据类型)
cls17 = dict(zs="张三", ls="李四")
print(cls17, type(cls17))  #结果为 {'zs': '张三', 'ls': '李四'} <class 'dict'>
xl = [(1, "张三"), (2, "李四")]
zy = dict(xl)
print(zy, type(zy))  #结果为  {1: '张三', 2: '李四'} <class 'dict'>
字典的查找
dict = {"zs": "张三", 2: "李四"}
#键存在则返回值,不存在则返回None
print(dict.get("zs"))  #结果为 张三
#使用get当键不存在时还可以自定义返回内容
print(dict.get("ww"),"自定义返回内容")  #结果为 None 自定义返回内容

这里使用的是get()方法,还可以用键来查找 ,但用这种方法有个弊端,如果键不存在于字典中,则会引发 KeyError 异常,为了避免 KeyError 异常,可以使用 get() 方法来安全地获取字典中键的值。如果键不存在于字典中,则返回指定的默认值。

字典的修改
"""
dict[key]=新值,若存在,修改原来的值,不存在,则添加新值
dict.setdefault(key,值)存在key,返回value(相当于查找),不存在,新增键值对
dict.update({k1:v1,k2:v2})存在,修改value;不存在,增加键值对;可以批量修改和增加
"""
cls18 = {"zs": "张三", "ls": "李四", "ww": "王五"}
#dict[key]='新值'
#键存在时,修改对应键的值
cls18["zs"] = 18  
print(cls18)  #结果为  {'zs': 18, 'ls': '李四', 'ww': '王五'}
#键不存在时,添加键值对  
cls18[1] = 18
print(cls18)   #结果为  {'zs': 18, 'ls': '李四', 'ww': '王五', 1: 18}

这个是默认修改法,使用键直接赋值

setdefault方法的使用
cls18 = {"zs": "张三", "ls": "李四", "ww": "王五"}
#键不存在时则添加键值对
print(cls18.setdefault("xl", 18))
print(cls18)   # 18  结果为  {'zs': '张三', 'ls': '李四', 'ww': '王五', 'xl': 18}
#键存在时字典内容不变
print(cls18.setdefault("zs", 18))
print(cls18) # 张三  结果为 {'zs': '张三', 'ls': '李四', 'ww': '王五', 'xl': 18}

update方法的使用(这个方法相当于结合了前面那两个方法)
cls18 = {"zs": "张三", "ls": "李四", "ww": "王五"}
#键不存在时添加键值对
cls18.update({"zy": "质疑"})
print(cls18)   #结果为 {'zs': '张三', 'ls': '李四', 'ww': '王五', 'zy': '质疑'}
#键存在时则修改键对应的值
cls18.update({"zs": "注释"})
print(cls18)  #结果为  {'zs': '注释', 'ls': '李四', 'ww': '王五', 'zy': '质疑'}

请注意,如果你要修改字典中的键,那么需要确保新的键在字典中是唯一的,否则会引发 KeyError 异常 

如果有需要补充的私信我或者评论通知我,我会加上 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值