当前位置 : 主页 > 编程语言 > python >

Python3 Data Type - Dict

来源:互联网 收集:自由互联 发布时间:2022-09-29
一 介绍 类名:dict 定义:{ key: value, key1: value1, ... } key:字符、布尔、元祖、数字。(原则上是不可变类型) value:任意数据类型 示例:var = { 1:111, 'a':'python', (1,2):[222,333,'abc'] } 存储原

一 介绍

  • 类名: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 语句的遍历

Python3 Data Type - Dict_Python3

  • 输出所有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对分别单独输出

三 增删改查

Python3 Data Type - Dict_Python3 Data Type_02

  • 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)


上一篇:项目目录规范
下一篇:没有了
网友评论