python中的字典

戏子无情 提交于 2020-01-31 10:47:13

字典

目标

  • 字典的应用场景
  • 创建字典的语法
  • 字典常用操作
  • 字典的循环遍历

一、字典的应用场景

思考1 如果有多个数据,例如’Tom’ ’ 男’ ‘20’ 如何快速存储
答 列表

list1=['tom','男',20]

思考2 如何找到 tom
找到下标为0

list1[0]

思考3 如果将来数据发生变化如下所示,还能用list[0]访问到数据‘Tom吗

list1=['男',20,'tom']

不能

思考4 数据顺序发生变换,每个数据的下标也会发生变化,如何保证数据顺序前后使用同一个标准找数据?
答 字典。字典是以键值对的形式出现,字典数据与数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要按照对应的键的名字查找数据即可

二、创建字典

字典特点

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间逗号隔开
#有数据
dict1={'name':'Tom', 'age':20,'gender':'男'}
#空字典
dict2={}
dict3=dict{}

字典的常见操作

增加

写法:字典序列[key]=值
注意 如果key存在则修改这个key对应的值;如果key不存在则新增此兼职对

dict1={'name':'Tom', 'age':20,'gender':'男'}
dict1['name']='rrrr'
print(dict1)  
#{'name': 'rrrr', 'age': 20, 'gender': '男'}

dict1['id']=110
print(dict1) 
#{'name': 'rrrr', 'age': 20, 'gender': '男', 'id': 110}

字典是可变数据

删除

del() /del:删除字典或者删除字典中的键值对

dict1={'name':'Tom', 'age':20,'gender':'男'}
del dict1['gender']
print(dict1)
#{'name': 'Tom', 'age': 20}

clear()清空字典

dict1.clear()
print(dict1)
{}

修改

写法:字典序列[key]=值
注意;如果key存在则修改,如果不存在则新增键值对

查找

key值查找

dict1={'name':'Tom', 'age':20,'gender':'男'}
print(dict1['name'])
print(dict1['id'])

如果当前查找的key存在,则返回对应的值,否则报错
get()

语法

字典序列.get(key,默认值)

注意:如果当前查找的key值不存在则返回第二个参数,如果省略第二个参数,则返回None

快速体验

print(dict1.get('name'))  #Tom
print(dict1.get('id',110))#110

print(dict1.get('id'))   #None

keys

#keys
dict1={'name':'Tom', 'age':20,'gender':'男'}
print(dict1.keys())
#dict_keys(['name', 'age', 'gender'])

values

print(dict1.values())
#dict_values(['Tom', 20, '男'])

items

print(dict1.items())
#dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])

循环遍历

key

for key in dict1.keys():
    print(key)

value

for value in dict1.values():
    print(value)
“”“
Tom
20
男
”“”

键值对

for item in dict1.items():
    print(item)
    """
('name', 'Tom')
('age', 20)
('gender', '男')
"""  

键值对拆包

for key,value in dict1.items():
    print(f'{key}={value}')
"""
name=Tom
age=20
gender=男
""" 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!