【python】字典常用方法
目录
- 前言
- 添加
- 修改
- 删除
- 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】字典常用方法相关推荐
- Python字典常用方法有哪些?
1. Python字典的常用方法 1.1 clear()方法 clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典. sco ...
- python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...
- python字典的常用方法有哪些_python中字典常用方法
# -*- coding: utf-8 -*- """ Created on Fri Jul 24 09:37:44 2020 答疑: 李立宗 lilizong@Gmai ...
- python字典去重合并_Python字典及基本操作(超级详细)
Python字典及基本操作(超级详细) 收录于话题#Python入门27个 今天小张帮大家简单介绍下Python的一种数据结构: 字典,字典是 Python 提供的一种常用的数据结构,它用于存放具有映 ...
- [转载] Python字典及基本操作(超级详细)
参考链接: Python字典| values 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两 ...
- [阶段一] 4. Python列表常用方法
python列表常用方法 len 函数可以计算除了数字类型以外,其他所有数据类型的长度. in 判断某个元素是否在列表(或元组)中:not in 判断某个元素是否不在列表(或元组)中. append ...
- 2.2 Python字典
2.字典 创建字典 key: value,key 不允许重复. scores = {'语文': 80, '数学': 81, '英语': 82} print(scores) {'语文': 80, '数学 ...
- python字典模糊查找_python字典模糊查询-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 access中的 模糊 查询 ...
- python字典倒序_python字典倒序输出-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 字典 内置方法ge ...
- python字典拷贝_python字典复制
python学习系列--深拷贝和浅拷贝 概念 普通情况下,复制一个对象是不会新开辟内存空间的,只是把新的对象名称指向原有的内存地址,这种操作其实不是算是拷贝,只是新的引用.把新的对象置于新的内存空间中 ...
最新文章
- 牛听听 总是获取音频流出错_【伤感听听|推荐】大度 什么
- centos 5.3 配置sendmail服务器
- vscode 导入第三方jar包(添加外部JAR)
- 程序员面试题精选100题(26)-和为n连续正数序列[算法]
- OpenCV watershed分水岭分割算法的实例(附完整代码)
- 【数据结构总结】第六章 图(非线性结构)
- B站开源自研动漫超分辨率模型,助力动漫UGC视频高清化
- 《JAVA与模式》之桥梁模式
- django 模型类的常见字段约束,以及filter 过滤和查询
- php 读写远程文件内容,php获取远程文件内容的函数
- macos php开发环境,macOS 10.13 High Sierra PHP开发环境配置
- hdu6086(AC 自动机)
- 原生微信小程序添加背景音乐
- dll创建及调用(VS2005)
- 浅谈java 之 Map
- vcpkg安装和使用--学习入门
- SLAM AR 技术与应用
- oracle创建表练习
- 统计一TXT文档中单词出现频率,输出频率最高的10个单词
- 【Vue开发实战课后题】子组件为何不可以修改父组件传递的props?