python学习day11(字典创建,常见的操作,循环遍历,拆包)

字典

一.应用场景

思考:如果有三个数据,例如:‘Tom’ 男 20 如何进行储存?
答:由于数据而会发生变化,所以用简单的列表下标会发生变化,

思考2:数据顺序发生变化,每个数据的下标会随之发生变化,如何保证数据顺序变化前后能食用同一的标准查找数据?
答:字典,字典里面的数据是以键值对的形式出现的,字典数据和数据顺序没有关系,及字典不支持下标,后期无论数据如何变化,秩序要按照对应键的名字查找数据即可

二.字典的特点

【1】符号为大括号
【2】数据为键值对的形式出现
【3】各个键值对之间用逗号隔开

三.创建字典

# 有效字典
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1)  # {'name': 'TOM', 'age': 20, 'gender': '男'}

#  空字典:两种方法。
dict2={}
dict3=dict()

四.字典常见的操作

【1】增
写法:字典序列[key]=值

注意:如果key存在则修改一个key对应的值:如果key不存在则新增此键值

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

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

注意:字典是可以修改的

【2】删除
del()
1.删除字典

dict1={'name':'TOM','age':20,'gender':'男'}
del(dict1)
print(dict1)
# 报错

2.删除键值对

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

3.删除不存在的键值对
报错
clear():清空字典

dict1={'name':'TOM','age':20,'gender':'男'}
dict1.clear()
print(dict1)
# {}

【3】修改数据
写法:字典序列[key]=数据

dict1={'name':'TOM','age':20,'gender':'男'}

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

注意:key是原本不存在的,则新增,如果存在,则修改

【4】查找

  • key值查找
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1['name'])
# TOM
print(dict1['idname'])
# 报错
  • 函数查找

[1] get():
语法:

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

注意:如果当前key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None

dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.get('name'))  # TOM
print(dict1.get('idname',110))  #  110
print(dict1.get('idname'))  #None

**[2] keys()😗*查找字典中所有key,返回可迭代的对象

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

这里体现了这是一个可以用for循环控制遍历的对象

哈哈哈哈哈这咋回事出了个表情包\笑哭

[3] valus():查找字典中所有的value,返回可迭代的对象

dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.values())  # dict_values(['TOM', 20, '男'])

[4] items():找找字典中所有键值对,返回所有可迭代对象,里面的数据全是元组,元组数据1是字典的key,元组数据2是字典key对应的值

dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.items())  
# dict_items([('name', 'TOM'), ('age', 20), ('gender', '男')])

四.字典的循环遍历

【1】遍历字典的key

dict1={'name':'TOM','age':20,'gender':'男'}
for key in dict1:
    print(key,end=' ')   #name age gender 

【2】遍历values

  • 方法一
dict1={'name':'TOM','age':20,'gender':'男'}
for key in dict1:
    print(dict1[key],end=' ')   
# TOM 20 男 
  • 方法二
dict1={'name':'TOM','age':20,'gender':'男'}
for value in dict1.values():
    print(value,end=' ')   # TOM 20 男

【3】遍历元素:

dict1={'name':'TOM','age':20,'gender':'男'}
for item in dict1.items():
    print(item,end=' ')   
# ('name', 'TOM') ('age', 20) ('gender', '男') 

五.遍历字典的键值对(拆包)

字典序列.items():返回可迭代对象,内部是元组,元组是两个数据
数据1是key,数据2是value

dict1={'name':'TOM','age':20,'gender':'男'}
for key,value in dict1.items():
    print(f'{key}={value}',end=' ')
# name=TOM age=20 gender=男 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值