Python全栈之路:字典dict常用方法

简介: Python全栈之路:字典dict常用方法

特性:

dict无序

key唯一,天生去重

常用函数

dict.clear() 删除字典中所有元素
dict.copy() 返回字典(浅复制)的一个副本
dict.get(key,default=None) 对字典dict中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)
dict.has_key(key) 如果键(key)在字典中存在,返回True,否则返回False
dict.items() 返回一个包含字典中(键, 值)对元组的列表
dict.keys() 返回一个包含字典中键的列表
dict.values() 返回一个包含字典中所有值的列表
dict.pop(key[, default]) 和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。

参考:Python中dict字典使用方法


创建字典

way 1:(小心列表坑!)
d = dict.fromkeys([1, 2, 3], ["name", "age"])
print("d:", d)
# ->d: {1: ['name', 'age'], 2: ['name', 'age'], 3: ['name', 'age']}
d[1][0] = "company"  # 浅拷贝
print("d of modify:", d)  # 此处,列表中的信息都被修改了
# ->d of modify: {1: ['company', 'age'], 2: ['company', 'age'], 3: ['company', 'age']}
way 2:
info = {
    "teacher1": "苍井空",
    "teacher2": "小泽玛利亚",
    "teacher3": "泷泽萝拉"
}

字典无序输出

print("info", info)
# ->info {'teacher2': '小泽玛利亚', 'teacher3': '泷泽萝拉', 'teacher1': '苍井空'}

查询

print(info["teacher1"])  # 不存在则报错
# ->苍井空
print(info.get("teacher5"))  # 推荐方式,不会报错
# ->None
print("teacher1" in info)  # py2:info.has_key("teacher5")
# ->True
print("keys:", info.keys())
# ->keys: dict_keys(['teacher2', 'teacher1', 'teacher3'])
print("values:", info.values())
# ->values: dict_values(['小泽玛利亚', '苍井空', '泷泽萝拉'])
print("items:", info.items())
# ->items: dict_items([('teacher2', '小泽玛利亚'),
# ('teacher1', '苍井空'), ('teacher3', '泷泽萝拉')])

修改

info["teacher1"] = "天海翼"  # 存在会被修改
print("modify:", info)
# ->modify: {'teacher2': '小泽玛利亚', 'teacher1': '天海翼', 'teacher3': '泷泽萝拉'}

增加

info["teacher4"] = "上原瑞穗"  # 没有则会创建
info.setdefault("teacher1", "樱井莉亚")  # 存在则不会被修改
print("add:", info)
# ->add: {'teacher4': '上原瑞穗', 'teacher2': '小泽玛利亚',
# 'teacher3': '泷泽萝拉', 'teacher1': '天海翼'}
b = {
    "teacher1": "樱井莉亚",
    "teacher5": "桃谷绘里香"
}
info.update(b)
print("update:", info)
# ->update: {'teacher1': '樱井莉亚', 'teacher4': '上原瑞穗',
#  'teacher2': '小泽玛利亚', 'teacher3': '泷泽萝拉', 'teacher5': '桃谷绘里香'}

删除

del info["teacher1"]
info.pop("teacher2")  # 标准写法
info.popitem()  # 随机删除一个
print("delete:", info)
# ->delete: {'teacher5': '桃谷绘里香', 'teacher3': '泷泽萝拉'}

遍历

for i in info:  # 推荐
print(i, info[i])
# teacher5 桃谷绘里香
# teacher3 泷泽萝拉
print("*"*50)
for key, value in info.items():  # 先转列表,在遍历,如果字典过大,会变慢
print(key, value)
# teacher5 桃谷绘里香
# teacher3 泷泽萝拉

清空

info.clear()
print("clear:", info)
# ->clear: {}

相关文章
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
217 1
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
375 1
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
172 2
|
4月前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
144 0
|
4月前
|
传感器 大数据 API
Python数字限制在指定范围内:方法与实践
在Python编程中,限制数字范围是常见需求,如游戏属性控制、金融计算和数据过滤等场景。本文介绍了五种主流方法:基础条件判断、数学运算、装饰器模式、类封装及NumPy数组处理,分别适用于不同复杂度和性能要求的场景。每种方法均有示例代码和适用情况说明,帮助开发者根据实际需求选择最优方案。
230 0
|
3月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
467 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
3月前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
536 0
|
4月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
291 4
|
3月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
103 0
|
3月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
102 0

推荐镜像

更多