本篇内容介绍了“Python3的Dict怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一 介绍
类名:dict
定义:{ key: value, key1: value1, ... }
key:字符、布尔、元祖、数字。(原则上是不可变类型)
value:任意数据类型
示例:var = { 1:111, 'a':'python', (1,2):[222,333,'abc'] }
存储原理:哈希结构
元素存储是无序(可通过多次print观察结构),且不支持切片功能。
可变类型(变量地址不变,其值可变)
常用方法
keys(),values(),items()
get( key [,'default'] ), pop(key [, 'default']), update(key:value)
二 支持 for 语句的遍历
输出所有key【键】(方法:keys())
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} for item in dt: print(item)
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} for item in dt.keys(): print(item)
输出所有value【值】(方法:values())
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} for item in dt.values(): print(item)
同时输出所有 key 及 value(方法:items())
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} for item in dt.items(): print(item) # 每个kv对都以元祖数据类型输出,如:(True,1)
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} for k, v in dt.items(): print('key:', k, 'value:', v) # 每个kv对分别单独输出
三 增删改查
查
get(key [, value ] ),若该元素不存在,则不会报错
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} print(dt.get(('name', 14,))) # 该方法,若key不存在,返回none print(dt.get('tony', 'hello')) # 若key不存在,则返回 hello
下标,若该元素不存在,则报错。
dt = {True: 1, 'name': 'elsa', 14: 'age', ('name', 14): 'elsa'} print(dt[True])
嵌套获取
dt = { 'elsa': { 'age': 18, 'school': [ ('中山小学', '2班'), ['文化初中', '5班'], {'一中': '1班'} ] } , 'tony': { 'age': 18, 'school': [ ('惠典小学', '7班'), ['附中初中', '9班'], {'一中': '1班'} ] } } print(dt['elsa']['school'][2]['一中']) print(dt.get('elsa').get('school')[2].get('一中')) # 获取层级对应的数据类型,并使用对应的方式
增
setdefault( key , value ),元素存在则不无修改。
dt = {'elsa': 16, 'tony': 15} v = dt.setdefault('kate', 20) # 新增元素,返回新key的value v1 = dt.setdefault('elsa', 22) # 若key存在,则返回已存在key的value print(dt, v, v1)
dt = {'elsa': 16, 'tony': 15} dt['tom'] = 20 print(dt) # {'elsa': 16, 'tony': 15, 'tom': 20}
修改
update( {key:value , key1:value , ... } | key=value , key2=value2 , ... ) ,若元素不存在,则添加该元素
dt = {'elsa': 16, 'tony': 15} dt.update({'elsa': 17, 'tony': 18}) print(dt) dt.update(tom=17, kate=19,elsa=15) print(dt) # 新增 tom、kate,并修改 elsa
dt = {'elsa': 16, 'tony': 15} dt['elsa'] = 20 print(dt) # {'elsa': 20, 'tony': 15}
删除
pop( key [, 返回值] ),若key不存在,则返回自定义值
dt = {'elsa': 16, 'tony': 15} v = dt.pop('elsa') # 返回该key的 v1 = dt.pop('tom', 'The user does not exist') print(dt, v, v1)
del 命令
dt = {'elsa': 16, 'tony': 15} del dt['tony'] print(dt) # {'elsa': 16}
popitem(),随机删除一个元素,以元祖返回该元素的key、value
dt = {'elsa': 16, 'tony': 15, 'tom': 17,'kate':18,'mary':15} k, v = dt.popitem() v1 = dt.popitem() print(dt, k, v, v1)