python中字典的常用函数_Python字典(Dict)详解 - 常用函数详解

Python有六大标准数据类型:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、字典(Dict)、集合(Set)

本文讲其中一种数据类型:字典(Dict)

字典特点、特性

特点: Dict 是可变的,它不是序列

特性

键必须为不可变类型(如数字,字符串或元组)

如果键重复,那么重复键对应的值后面会把前面的值覆盖掉,但是位置还是前面的位置

值可以为任何标准数据类型,而且也可以重复

创建字典的五种方式

方式一:直接在空字典{}里面写键值对

a = {'姓名': '小哇', '年龄': 28}

print(a) # {'姓名': '小哇', '年龄': 28}

方式二:定义一个空字典,再往里面添加键值对

a = dict() # a = {} 这样写也可以

a['姓名'] = '小哇'

a['年龄'] = 28

print(a) # {'姓名': '小哇', '年龄': 28}

方式三:把键作为关键字传入

a = dict(姓名 = "小哇", 年龄 = 28)

print(a) # {'姓名': '小哇', '年龄': 28}

方式四:可迭代对象方式来构造字典

a = dict([("姓名", "小哇"), ("年龄", 28)]) # 这里用元组/列表/集合都是可以的

print(a) # {'姓名': '小哇', '年龄': 28}

方式五:通过 zip() 把对应元素打包成元组,类似于上一种方法

a = dict(zip(["姓名", "年龄"], ["小哇", 28]))

print(a) # {'姓名': '小哇', '年龄': 28}

访问和修改字典

访问字典里的值

diction = {'Name': '小明', 'Age': 7, 'Class': 'First'}

# 可以理解为通过字典的键去索引对应的值

print(diction['Name']) # '小明'

print(diction['Age']) # 7

# print(diction['age']) # 没有的键, 则报错

修改字典

# 指定键值对, 如果键已经存在, 则修改值;如果键不存在, 则在最后增加键值对

d1 = {"身高":175, "体重":65}

d1["身高"] = "1米75"

d1["名字"] = "张三"

print(d1) # {'身高': '1米75', '体重': 65, '名字': '张三'}

字典常用函数

len(dict) 返回字典中键的个数

# 后面的键'身高'和前面的重复了,则对应的值175会覆盖'1米75',所以还是3个键

dic = {'身高':'1米75', '体重':65, '名字':'张三', '身高':175}

num = len(dic)

print(num) # 3

dict.keys() 返回一个可迭代对象(字典的所有键)

d1 = {'身高':175, '体重':65, '肤色':'黑色', '名字':'张三'}

a = d1.keys()

print(a)

print(list(a)) # 将可迭代对象转换为列表

key01 = [k2 for k2 in a] # 列表推导式,遍历可迭代对象

print(key01)

key02 = [k2 for k2 in d1] # 列表推导式,直接遍历字典

print(key02)

输出:

dict_keys(['身高', '体重', '肤色', '名字'])

['身高', '体重', '肤色', '名字']

['身高', '体重', '肤色', '名字']

['身高', '体重', '肤色', '名字']

dict.values() 返回一个可迭代对象(字典的所有值)

d1 = {'身高':175, '体重':65, '肤色':'黑色', '名字':'张三'}

a = d1.values()

print(a)

print(list(a)) # 将可迭代对象转换为列表

key01 = [k2 for k2 in a] # 列表推导式,遍历可迭代对象

print(key01)

输出:

dict_values([175, 65, '黑色', '张三'])

[175, 65, '黑色', '张三']

[175, 65, '黑色', '张三']

dict.items() 返回(键,值)元组组成的可迭代对象

d1 = {'身高':175, '体重':65, '肤色':'黑色', '名字':'张三'}

a = d1.items()

print(a)

print(list(a))

key_values = [i for i in a]

print(key_values)

输出:

dict_items([('身高', 175), ('体重', 65), ('肤色', '黑色'), ('名字', '张三')])

[('身高', 175), ('体重', 65), ('肤色', '黑色'), ('名字', '张三')]

[('身高', 175), ('体重', 65), ('肤色', '黑色'), ('名字', '张三')]

dict.get(key, default=None) 返回指定的键对应的值, 如果值不在字典中默认返回 None

key:指定的键

default:如果指定的键不存在时,返回该值,默认为 None

dic = {"身高":175, "体重":65}

a = dic.get("身高")

print(a) # 175

a = dic.get("身", "没有这个键")

print(a) # "没有这个键"

dict.update(dict2) 把 dict2 字典的键值对更新到字典 dict 里,无返回值

d1 = {'身高':175, '名字':'张三'}

d2 = {'肤色':'巨黑'}

d3 = {'身高':'1米75'}

# 把字典d2的键值对添加到字典d1的末尾

d1.update(d2)

d1.update(d3) # 重复键,值会被覆盖

print(d1) # {'身高': '1米75', '名字': '张三', '肤色': '巨黑'}

# 把字典的键作为关键字参数来更新键值对

d1.update(体重 = 105, 肤色 = '小白')

print(d1) # {'身高': '1米75', '名字': '张三', '肤色': '小白', '体重': 105}

dict.pop(key) 删除字典中指定键 key 所对应的值,而且还会返回为被删除的值

d1 = {'身高':175, '名字':'张三', '年龄':18}

pop_obj = d1.pop('年龄')

print(d1) # {'身高': 175, '名字': '张三'}

print(pop_obj) # 18

dict.popitem() 删除字典中的最后一个键值对,而且还会返回为被删除的键值对

dic = {'name': '小明', '年龄': 18, '学历': '本科'}

pop_obj = dic.popitem()

print(pop_obj)

print(dic)

dict.copy() 返回一个字典的浅复制

dic = {'name': '小明', '年龄': 18, '学历': '本科'}

new_dic = dic.copy()

print(new_dic) # {'name': '小明', '年龄': 18, '学历': '本科'}

dict.clear() 删除字典内所有元素,无返回值

dic = {'name': '小明', '年龄': 18, '学历': '本科'}

dic.clear()

print(dic) # {}

原文链接:https://blog.csdn.net/m0_46076716/article/details/107929344

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值