Python常用数据结构--字典

字典

Python中唯一内建的映射类型,每个元素都是一组键值对(key:value),其元素没有位置索引,键值之间用冒号连接

关于键和值

键:可以是任何不可修改类型的数据(不可重复)
值:可以是任何类型的数据
字典中键值对的数量:len()

字典操作

  1. 查找与特定键相关联的值:dictName[ key ]
  2. 修改数据:dictName[ key ] = value(若当前的键并不存在,则当前语句相当于创建了一组新的键值对)
  3. 删除:del命令(可以用于删除某个键值对,也可删除整个字典)
  4. 检查是否有某键: key in dictName (返回Boolean型数据)

字典方法

  1. keys():将键以可迭代的dict_keys对象形式返回

  2. values():将值以可迭代的dict_values对象形式返回

  3. items():将键值对以可迭代的dict_items对象形式返回

dict1 = {1:'a',2:'b',3:'c'}
list1 = list(dict1.keys())
list2 = list(dict1.values())
list3 = list(dict1.items())
print(list1)
print(list2)
print(list3)

运行结果:
在这里插入图片描述

  1. setdefault(key,default):若搜索的字典包含要搜索的key,则返回对应的value,若找不到,则返回default的值
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.setdefault(1, 0))
print(dict1.setdefault(4, 0))

运行结果:
在这里插入图片描述

  1. update():将另一个字典中所有的键值对一次性添加到当前字典中,若有相同的键,则以另一字典的值更新当前字典
dict1 = {1:'a',2:'b',3:'c'}
dict2 = {1:'zsj',4:'d',5:'e'}
print(dict1)
dict1.update(dict2)
print(dict1)

运行结果:
在这里插入图片描述

  1. clear():将字典中所有条目删除,变成空字典
dict1 = {1:'a',2:'b',3:'c'}
print(dict1)
dict1.clear()
print(dict1)

运行结果:
在这里插入图片描述

  1. pop():弹出并删除键值对(弹出:返回对应的值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.pop(1))
print(dict1)

运行结果:
在这里插入图片描述

  1. popitem():弹出一个元素
dict1 = {1:'a',2:'b',3:'c'}
for i in list(dict1.keys()):   
    #由于字典的长度在变化,所以需要使用list方法将字典的keys保存在一个列表中
    print(dict1.popitem())
    print(dict1)

运行结果:
在这里插入图片描述

  1. get():返回指定键对应的值(可以设置默认值)
dict1 = {1:'a',2:'b',3:'c'}
print(dict1.get(1, '未找到'))
print(dict1.get(4,'未找到'))

运行结果:
在这里插入图片描述

关于字典的遍历

  1. 用for循环遍历字典时,若in后只写了字典名称,则默认遍历字典的键
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1:        #默认遍历字典的键
            print(i,dict1[i])

运行结果:
在这里插入图片描述

  1. 若想用for循环遍历字典的值,则使用values()方法
dict1 = {1:'a',2:'b',3:'c'}
for i in dict1.values():
            print(i)

运行结果:
在这里插入图片描述
3.若想用for循环遍历键值对,则使用items()方法

字典与列表和元组之间的转换

  • 列表与字典之间的转换:

    字典转列表用list()
    列表无法转换成字典

  • 元组与列表之间的转换
    字典转元组用tuple()
    元组无法转换成字典

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值