目录

  • 前言
    • 添加
    • 修改
    • 删除
  • update()
  • setdefault()
  • get()
  • keys()
  • values()
  • items()
  • copy()
  • pop()
  • popitem()
  • clear()
  • 可变与不可变
    • id()
    • 可变
    • 不可变

前言

字典是一系列“ : ”对,每一个键都与一个值相关联。
字典的键是不可变类型,并且当键一样时,后面的值会覆盖掉前面的值,与键相关联的值可以是任意数据类型。
每个值对应一个键,因此访问该值时需要用键作为索引。

dict1 = {"name": "千寻", "name": "20"}  # 当key一样时,后面的value会覆盖前面的value
print(dict1)# 执行结果:
{'name': '20'}

添加

增加新的键值对,对新增加的键赋值

dict1 = {"姓名": "千寻", "年龄": "12"}dict1["性别"] = "女"
print(dict1)# 执行结果:
{'姓名': '千寻', '年龄': '12', '性别': '女'}

修改

对已有的键直接赋值

dict1 = {"姓名": "千寻", "年龄": "12"}dict1["年龄"] = "20"
print(dict1)# 执行结果:
{'姓名': '千寻', '年龄': '20'}

删除

用 del 命令删除一个字典的键

dict1 = {"姓名": "千寻", "年龄": "12"}del dict1["年龄"]  # 删除key对应的键值对
print(dict1)# 执行结果:
{'姓名': '千寻'}

update()

更新字典,将括号内的字典添加原字典中,如果key相同,value值覆盖

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}
dict2 = {"性别": "女", "爱好": "唱歌"}dict1.update(dict2)
print(dict1)# 执行结果:
{'姓名': '千寻', '年龄': '10', '性别': '女', '爱好': '唱歌'}

setdefault()

1.查询括号内key对应的value值
2.如果key不存在,则添加。value默认为None

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.setdefault("年龄"))# 执行结果:
10dict1.setdefault("身份证","76543")  # 当dict1中不存在key "身份证"时会添加进去,value指定为"76543"
print(dict1)# 执行结果:
{'姓名': '千寻', '年龄': '10', '爱好': '跳舞', '身份证': '76543'}

get()

查询括号内key对应的value值

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.get("姓名"))# 执行结果:
千寻

keys()

查询字典中所有的key

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.keys())# 执行结果:
dict_keys(['姓名', '年龄', '爱好'])

values()

查询字典中所有的value

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.values())# 执行结果:
dict_values(['千寻', '10', '跳舞'])

items()

查询字典中所有的键值对

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.items())# 执行结果:
dict_items([('姓名', '千寻'), ('年龄', '10'), ('爱好', '跳舞')])for k, v in dict1.items():print(k, v)# 执行结果:
姓名 千寻
年龄 10
爱好 跳舞

copy()

复制

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}dict2 = dict1.copy()
print(dict2)# 执行结果:
{'姓名': '千寻', '年龄': '10', '爱好': '跳舞'}

pop()

删除括号内key对应的键值对
返回值:当前key对应的value

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.pop("爱好"))  # 返回当前被删除的键值对中key "爱好" 对应的value
print(dict1)# 执行结果:
跳舞
{'姓名': '千寻', '年龄': '10'}

popitem()

删除最后一对键值对
返回值:最后一对键值对

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}print(dict1.popitem())
print(dict1)# 执行结果:
('爱好', '跳舞')
{'姓名': '千寻', '年龄': '10'}

clear()

清空字典中所有的键值对

dict1 = {"姓名": "千寻", "年龄": "10", "爱好": "跳舞"}dict1.clear()
print(dict1)# 执行结果:
{}

可变与不可变

前面提到字典的key是不可变类型,关于这方面的知识我们做一个详细拓展:

id()

返回当前对象在内存中的地址

a = 1
b = 1print(id(a))  # 执行结果:2300486904112
print(id(b))  # 执行结果:2300486904112

变量a与变量b都指向数值对象1所在的地址,因此,id(a)与id(b)相等。


可变

修改元素,内存地址不会发生改变

list1 = [1, 2, 3]
print(id(list1))  # 执行结果:1649339688512list1.append(4)
print(id(list1))  # 执行结果:1649339688512

对于可变类型,可以直接使用方法,不需要重新赋值

list1 = [1, 2, 3, 4, 5]print(id(list1))  # 执行结果:2888014391296list1.append(6)print(id(list1))  # 执行结果:2888014391296list1 = ["one", "two"]print(id(list1))  # 执行结果:2888023000768

列表、字典变量指向的存储地址,在修改部分元素时并不会发生变化,只有在重新定义其中元素时,地址才会发生变化。


不可变

修改元素,内存地址也随之改变

str1 = "hello"
print(id(str1))  # 执行结果:2793521275120str2 = str1.replace("h", "H")  # 将字符串中的“h”替换为“H”
print(str2)      # 执行结果:Hello
print(id(str2))  # 执行结果:2793519599920

对于不可变类型,在进行一系列操作之后,需要重新赋值(让它重新开辟一个内存空间)


从变量指向地址内容是否可以变化角度来看,数值,字符串,元组是不可变类型,而列表和字典则是可变类型。

【python】字典常用方法相关推荐

  1. Python字典常用方法有哪些?

    1. Python字典的常用方法 1.1 clear()方法 clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典. sco ...

  2. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  3. python字典的常用方法有哪些_python中字典常用方法

    # -*- coding: utf-8 -*- """ Created on Fri Jul 24 09:37:44 2020 答疑: 李立宗 lilizong@Gmai ...

  4. python字典去重合并_Python字典及基本操作(超级详细)

    Python字典及基本操作(超级详细) 收录于话题#Python入门27个 今天小张帮大家简单介绍下Python的一种数据结构: 字典,字典是 Python 提供的一种常用的数据结构,它用于存放具有映 ...

  5. [转载] Python字典及基本操作(超级详细)

    参考链接: Python字典| values 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两 ...

  6. [阶段一] 4. Python列表常用方法

    python列表常用方法 len 函数可以计算除了数字类型以外,其他所有数据类型的长度. in 判断某个元素是否在列表(或元组)中:not in 判断某个元素是否不在列表(或元组)中. append ...

  7. 2.2 Python字典

    2.字典 创建字典 key: value,key 不允许重复. scores = {'语文': 80, '数学': 81, '英语': 82} print(scores) {'语文': 80, '数学 ...

  8. python字典模糊查找_python字典模糊查询-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 access中的 模糊 查询 ...

  9. python字典倒序_python字典倒序输出-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 字典 内置方法ge ...

  10. python字典拷贝_python字典复制

    python学习系列--深拷贝和浅拷贝 概念 普通情况下,复制一个对象是不会新开辟内存空间的,只是把新的对象名称指向原有的内存地址,这种操作其实不是算是拷贝,只是新的引用.把新的对象置于新的内存空间中 ...

最新文章

  1. 牛听听 总是获取音频流出错_【伤感听听|推荐】大度 什么
  2. centos 5.3 配置sendmail服务器
  3. vscode 导入第三方jar包(添加外部JAR)
  4. 程序员面试题精选100题(26)-和为n连续正数序列[算法]
  5. OpenCV watershed分水岭分割算法的实例(附完整代码)
  6. 【数据结构总结】第六章 图(非线性结构)
  7. B站开源自研动漫超分辨率模型,助力动漫UGC视频高清化
  8. 《JAVA与模式》之桥梁模式
  9. django 模型类的常见字段约束,以及filter 过滤和查询
  10. php 读写远程文件内容,php获取远程文件内容的函数
  11. macos php开发环境,macOS 10.13 High Sierra PHP开发环境配置
  12. hdu6086(AC 自动机)
  13. 原生微信小程序添加背景音乐
  14. dll创建及调用(VS2005)
  15. 浅谈java 之 Map
  16. vcpkg安装和使用--学习入门
  17. SLAM AR 技术与应用
  18. oracle创建表练习
  19. 统计一TXT文档中单词出现频率,输出频率最高的10个单词
  20. 【Vue开发实战课后题】子组件为何不可以修改父组件传递的props?

热门文章

  1. CSDN博客中图片大小调整
  2. Excel的按钮无法删除怎么办
  3. 刚入职新公司上班需要注意的点有哪些
  4. 菜鸟入门帖:笔记本常见接口功能解析
  5. Leetcode_638_大礼包_dfs
  6. vue组件的循环引用
  7. 南开20春学期大学计算机基础在线作业,【南开】20春学期《大学计算机基础》在线作业-复习资料附答案1...
  8. 想请教下墓碑机制相关?
  9. 【Miniconda】
  10. HP DP debug方法