Python | 不就是数据类型吗(字典篇)

字典(dict)

一、初识字典

1.描述

字典是项目开发过程中使用频率最高的一个组合数据类型。用于存放具有映射关系的数据,比如成绩单科目和成绩是要一一对应的,语文:85,数学:92,英语:98。

2.特点
  • 可改变的
  • 可存放任意类型数据
  • 存放格式为key:value,多个键值对以逗号分隔
  • key是唯一的且为不可变类型,元组可以作为字典的key,但列表不行。value可重复且类型无限制
  • 如果key重复,后面的value会替换前面的value。
dic1 = {'name' : 'zhangsan' , 'age' : 20 , 'address' : 'BeiJing' , 'name' : 'lisi'}
print(dic1)	# {'name' : 'lisi' , 'age' : 23 , 'address' : 'BeiJing'}
3.声明
  • d = dict()
  • d = {}
  • d = {key1:value1,key2:value2,…}
fruits = {
    '苹果': {'name': 'apple', 'price': 5.00, 'count': 20},
    '香蕉': {'name': 'banana', 'price': 2.50, 'count': 10},
    '梨': {'name': 'pear', 'price': 3, 'count': 15},
    '桃': {'name': 'peach', 'price': 2, 'count': 10}
}

二、字典的增删改查

1.增加
方法描述
字典名[key] = value如果键不存在,将键值对添加到字典末尾;如果存在,则覆盖
setdefault(key,default_value)如果键不存在,将键值对添加到字典末尾,且将值设为default;如果存在,也不会覆盖。
zs = {'name':'zs',"age":20,'height':170}

# 增加键值对:weight
# zs['weight'] = 70
# zs['weight'] = 80 # 覆盖掉原值
# print(zs)

# 增加键值对:weight
zs.setdefault('weight',70)
# zs.setdefault('weight',80) # 不覆盖
zs.setdefault('name','ls') # 不能修改
print(zs)
2.删除
方法描述
pop(key)根据key删除一个指定键值对,返回值为被删除的值。
popitem()删除并返回最后一个键值对(python>=3.7);随机删除一个键值对(python<3.7)
clear()清空字典
del删除整个字典,或者根据key删除一个指定键值对。
zs = {'name':'zs',"age":20,'height':170}

# pop(key) # 返回删除的值
# print(zs.pop('age'))

# popitem() # 返回删除的键值对
print("张三的重量是:",zs.popitem()[1])
print(zs)

# del3
del zs # 删除整个zs变量
del zs['name'] # 删除name键值对

# clear()
zs.clear() # 清空字典
3.修改
方法描述
字典名[key] = valuekey存在才会被修改;否则是增加。
update({key:value})传递一个字典,如果key相同则覆盖,没有则添加
zs_1 = {'name':'zs',"age":20,'height':170}
zs_2 = {"name":'zs','weight':60,"age":30}

# zs_1.update(zs_2)
# print(zs_1) # {'name': 'zs', 'age': 30, 'height': 170, 'weight': 60}
# print(zs_2) # 没有变化

zs_2.update(zs_1)
print(zs_1) # 没有变化
print(zs_2) # {'name': 'zs', 'weight': 60, 'age': 20, 'height': 170}
4.查看
方法描述
字典名[key]通过指定的key获取对应的value
get(key,[返回的信息])根据一个key获取对应的value。不存在默认返回None,返回值可自定义。
items()获取字典中所有的键值对,返回值是一个可迭代的对象,字典的每一个键值以列表形式放在该列表里。
keys()获取字典中所有的key值。
values()获取字典中所有的value值
注意:

keys,values,items 获得的类型不是列表,但是是可迭代对象,可以直接使用for循环遍历,如果需要按照列表方式操作,需要先转化为列表。

zs = {'name':'zs',"age":20,'height':170}

# print(zs['name']) # zs
# print(zs['hometown']) # 报错
# 使用get解决
print(zs.get('name',"不存在")) # zs
print(zs.get('hometown',"沧州")) # 不报错,返回自定义信息

for i in zs.items():
	print(i) # 打印所有的键值对(元组形式)

for i in zs.keys():
	print(i) # 打印所有的键

for i in zs.values():
	print(i) # 打所有的值

# 直接遍历字典,相当与遍历所有的键
for i in zs:
	print(i) # 打印所有的键
5.其他方法
方法描述
clear()清空字典
copy()复制字典
fromkeys()根据给定的数据作为key初始化一个字典。
6.其他操作
  • in , not in:判定
zs = {'name':'zs',"age":20,'height':170}
# print(zs['name']) # zs
# print(zs['hometown']) # 报错

# 判定
if 'hometown' in zs:
	print(zs['hometown'])
  • 赋值和遍历
# 赋值:但是将键赋值给遍历
d1 = {1:"a",2:'b}
m, n = d1
# print(m,n) # 1,2

# 遍历:遍历字典的键
for i in d1:
	print(i)

三、字典和列表的区别

  • 列表:强调整体,记录整体的某一个特征
  • 字典:强调个体,记录个体的多个特征。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值