Python基础(五) 基本数据类型④:字典

Scarlett ·
更新时间:2024-09-20
· 562 次阅读

Python基础(五) 基本数据类型:字典一、字典(dict)二、字典的相关操作1.增2.删3.查4.改5.其他操作三、字典的嵌套
转载请附上原文链接,谢谢合作。 一、字典(dict)

  字典是Python中唯一的一个映射类型。他是由 { } 括起来的键值对组成。在字典中key是唯一的,在保存的时候,根据key计算出一个内存地址,然后将key-value保存在这个地址中,也就是hash算法。在dict中存储的key-value中的key必须是可hash的。
Python中的可hash数据类型:int,str,bool,…
不可hash的:list,dict,set.

语法:{key1:value1,key2:value2,…}
其中key不可变(可hash),value可以是任意数据类型。

二、字典的相关操作 1.增

字典的增加有两种操作方式

①dic[ key ] = value
如果dic中没有出现过的key则新增一个,如果出现过就是赋值。

②dic.setdefault( key , value )
setdefault中的value参数可省略,如果省略默认给值None
如果key已经存在,则不会进行任何操作。

dic = {} dic['sno'] = '1234' dic['sname'] = '张三' print(dic) # 输出结果:{'sno': '1234', 'sname': '张三'} dic.setdefault('sage',18) dic.setdefault('sadress') dic.setdefault('sadress','XXXX') # 因为key和上一行一样,所以不会进行操作。 print(dic) # 输出结果:{'sno': '1234', 'sname': '张三', 'sage': 18, 'sadress': None} 2.删

①dic.pop( key )
删除指定的key及其value
返回值为删除的key的value

②del dic[ key ]
效果同上一条,但无返回值。

③dic.popitem()
随机删除一个
返回值为( key , value ),数据类型为:tuple(元组)

④dic.clear()
清空字典

dic = {'sno': '1234', 'sname': '张三', 'sage': 18, 'sadress': None,'semail':'321m'} ret = dic.pop('sadress') print(ret) # None print(dic) # {'sno': '1234', 'sname': '张三', 'sage': 18, 'semail': '321m'} del dic['semail'] print(dic) # {'sno': '1234', 'sname': '张三', 'sage': 18} ret = dic.popitem() print(ret) # ('sage', 18) print(dic) # {'sno': '1234', 'sname': '张三'} dic.clear() print(dic) # {} 3.查

①直接输出语句
print( dic[ key ] )
弊端:如果key不存在,会直接报错

②dic.get( key , 返回值 ) 第二参数可省略
当key存在的时候返回其value
不存在的时候返回指定的返回值,省略返回值默认返回None

dic = {'sno': '1234', 'sname': '张三', 'sage': 18, 'sadress': None} print(dic['sno']) # 1234 print(dic[321321]) # 报错:KeyError: 321321,key不存在 ret = dic.get('sname') print(ret) # 张三 ret = dic.get('sage', 'abcde') print(ret) # 18 ret = dic.get(999) print(ret) # None ret = dic.get(999, 'abcde') print(ret) # abcde 4.改

①dic[ key ] = value
和增加一样,如果key存在,就是更改,不存在就是增加。

②dic1.update(dic2)
把dic2中的内容更新到dic1中,如果key有相同的,就更改为dic2的值,如果key不存在,就新增。dic2的内容不会变化。

dic1 = {'sno': '1234', 'sname': '张三', 'sage': 18, 'sadress': None} dic2 = {'sno': '4321', 'semail': '321m'} dic1.update(dic2) print(dic1) # {'sno': '4321', 'sname': '张三', 'sage': 18, 'sadress': None, 'semail': '321m'} print(dic2) # {'sno': '4321', 'semail': '321m'} 5.其他操作

dic.keys()
返回一个list类型的列表,其中每个元素都是dic里的key

dic.values()
同上,返回的是value

dic.items()
返回的也是列表,列表中的元素类型是tuple(元组)
返回值例如:[ ( key , value ) ]

三、字典的嵌套

和列表、元组一样,字典内也可以放字典(套娃)

dic = { 'name': '张三', 'age': 33, 'child': { 'name': '张XX', 'age': 10 }, 'wife': { 'name': '罗XX', 'age': 30 } } ret = dic.get('child') print(ret) # {'name': '张XX', 'age': 10} ret = dic.get('child').get('age') # 允许套娃 print(ret) # 10
作者:胡人天



python基础 字典 数据类型 数据 基本数据类型 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号