字典
Python 使用 {} 或者 dict() 来创建一个空的字典:
插入键值
| a{} |
| a["one"] = "this is number 1" |
| a["two"] = "this is number 2" |
| a |
| {'one': 'this is number 1', 'two': 'this is number 2'} |
字典没有顺序
当我们 print 一个字典时,Python并不一定按照插入键值的先后顺序进行显示,因为字典中的键本身不一定是有序的。
因此,Python中不能用支持用数字索引按顺序查看字典中的值,而且数字本身也有可能成为键值,这样会引起混淆
键必须是不可变的类型
出于hash的目的,Python中要求这些键值对的键必须是不可变的,而值可以是任意的Python对象。
| a={} |
| a['apple'] = ['a','b','c','d'] |
| a['banana'] = ['x','y','z'] |
| a |
输出
| {'apple':['a', |
| 'b', |
| 'c'], |
| 'banana':['x', |
| 'y', |
| 'z']} |
使用 dict 初始化字典
input
| b = dict([ |
| ('apple',123), |
| ('banana',456), |
| ('pear',789) |
| ]) |
| b |
output
| {'apple':123,'banana':456,'pear':789} |
型适合做键的类型
在不可变类型中,整数和字符串是字典中最常用的类型;而浮点数通常不推荐用来做键,
观察data的值就会发现,这个错误是由浮点数的精度问题所引起的:
有时候,也可以使用元组作为键值,
元组是有序的,因此 ('apple', 'banana') 和 ('banana', 'apple') 是两个不同的键:
| cc={} |
| cc[('apple','banana')]=100 |
| cc[('banana','apple')]=200 |
| print cc['apple','banana'] |
| print cc['banana','apple'] |
字典方法
get 方法
返回字典中键 key 对应的值,如果没有这个键,返回 default 指定的值(默认是 None )
pop 方法删除元素
update
| person = {} |
| person ['id'] = 12 |
| person ['first'] = "jame" |
| person ['last'] = "Learb" |
| print person |
| {'id':12,'first':'jame','last':'Learb'} |
把first改成Bob,id改成44
| dd{'id'= 44,'first'="Bob"} |
| person.update(dd) |
| print dd |
| {'id':44,'first':'Bob','last':'Learb'} |
in查询字典中是否有该键
keys 方法,values 方法和items 方法
key返回所有的键组成的列表
values返回所有的值
items返回一个由所有键值对元组组成的列表;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?