首页 > Python资料 博客日记
Python 字典(Dict)详解与实战应用
2024-09-21 11:00:05Python资料围观49次
文章Python 字典(Dict)详解与实战应用分享给大家,欢迎收藏Python资料网,专注分享技术知识
目录
方式2:遍历字典的值,但不能通过值获取键 dict.values()
方式3:最常用的方法:直接获取键值对 dict.items()
popitem()默认删除最后一个键值对,并以元组的方式返回这个键值对
前言
字典(Dict)是一种非常强大且常用的数据结构,它通过键值对(key-value pairs)的形式存储数据。字典的键(key)必须是唯一的且不可变(如字符串、数字或元组),而值(value)则可以是任意数据类型。
一、字典的定义和创建
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
1.使用花括号定义
Python中,字典可以通过花括号{}
直接定义,键和值之间用冒号:
分隔,键值对之间用逗号,
分隔。
# 使用花括号定义字典
d1 = {
"name": "马云",
"age": 18
}
print(d1, type(d1)) # 输出: {'name': '马云', 'age': 18} <class 'dict'>
2.使用dict()
函数创建
除了直接使用花括号,还可以使用dict()
函数来创建字典。该函数可以接受多种形式的参数
# 使用dict()函数创建空字典
d2 = dict()
print(d2, type(d2)) # 输出: {} <class 'dict'>
# 使用关键字参数创建字典
d3 = dict(a=10, b=20, c=30)
print(d3, type(d3)) # 输出: {'a': 10, 'b': 20, 'c': 30} <class 'dict'>
# 使用包含键值对的列表(每个元素为元组)创建字典
d4 = dict([("string1", "123"), ("string2", 456), ("a", 30), ("name", "malei")])
print(d4, type(d4)) # 输出: {'string1': '123', 'string2': 456, 'a': 30, 'name': 'malei'} <class 'dict'>
# 或者使用关键字参数形式,与直接赋值类似
d4 = dict(string1="123", string2=456, a=30, name="malei")
print(d4, type(d4)) # 输出同上
二、字典的三种遍历方式
方式1:遍历字典的键,通过键获取值 dict.keys()
# 方式1:遍历字典的键,通过键获取值 dict.keys()
d5 = {
"name": "Jeci",
"age": 18,
"phone_number": 11335426987,
"address": "河南省洛阳市",
"hobbies": ["吃饭", "逛街", "打豆豆"]
}
for k in d5.keys():
print(k, d5[k])
"""输出:
name Jeci
age 18
phone_number 11335426987
address 河南省洛阳市
hobbies ['吃饭', '逛街', '打豆豆']
"""
方式2:遍历字典的值,但不能通过值获取键 dict.values()
d5 = {
"name": "Jeci",
"age": 18,
"phone_number": 11335426987,
"address": "河南省洛阳市",
"hobbies": ["吃饭", "逛街", "打豆豆"]
}
# 方式二:遍历字典的值,但不能通过值获取键 dict.values()
for v in d5.values():
print(v)
"""输出:
Jeci
18
11335426987
河南省洛阳市
['吃饭', '逛街', '打豆豆']
"""
方式3:最常用的方法:直接获取键值对 dict.items()
d5 = {
"name": "Jeci",
"age": 18,
"phone_number": 11335426987,
"address": "河南省洛阳市",
"hobbies": ["吃饭", "逛街", "打豆豆"]
}
# 方式3:最常用的方法:直接获取键值对 dict.items()
for k, v in d5.items():
print(k, v)
"""输出
name Jeci
age 18
phone_number 11335426987
address 河南省洛阳市
hobbies ['吃饭', '逛街', '打豆豆']
"""
三、字典的常见操作
1.添加
要向字典中添加新的键值对,可以直接通过赋值操作完成
d5 = {
"name": "Jeci",
"age": 18,
"phone_number": 11335426987,
"address": "河南省洛阳市",
"hobbies": ["吃饭", "逛街", "打豆豆"]
}
print("=================添加==================")
# 当键不存在时,会自动添加你写的键值对
d5["id"] = 101
print(d5["id"]) # 101
# 当键存在时,会修改键对应的值
d5["name"] = "luccy"
print(d5["name"]) # luccy
2.删除
pop()根据键删除键值对,并返回值
print("=================删除==================")
# pop()根据键删除键值对,并返回值
r = d5.pop("age")
print(r) # 18
print(d5) # {'name': 'luccy', 'phone_number': 11335426987, 'address': '河南省洛阳市', 'hobbies': ['吃饭', '逛街', '打豆豆'], 'id': 101}
popitem()默认删除最后一个键值对,并以元组的方式返回这个键值对
# popitem()默认删除最后一个键值对,并返回这个键值对
r = d5.popitem()
print(r) # ('id', 101)
print(d5) # {'name': 'luccy', 'phone_number': 11335426987, 'address': '河南省洛阳市', 'hobbies': ['吃饭', '逛街', '打豆豆']}
clear()清空字典
# clear()清空字典
d5.clear()
print(d5) # {}
3.修改
update()将另一个字典的键值对信息更新到自己的字典中,若键重复,则更新键对应的值
print("=================修改==================")
# update()将另一个字典的键值对信息更新到自己的字典中,若键重复,则更新键对应的值
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # {'a': 1, 'b': 3, 'c': 4}
4.查找
get(k)获取键对应值并返回,若键不存在返回 None, 当你get(k,v)时:若键不存在,返回你指定的v,若k存在仍然返回字典中k对应的值
print("=================查找==================")
d5 = {
"name": "luccy",
"age": 18,
"phone_number": 11335426987,
}
# 获取键对应值并返回,若键不存在返回 None
print(d5.get("agg")) # None
print(d5.get("name")) # luccy
# 当查找的键不存在时,我们可以指定默认的返回值,键存在时,依旧返回键对应的值
print(d5.get("agg","鸡蛋")) # 鸡蛋
print(d5.get("name","小米")) # luccy
5.copy拷贝
1.浅拷贝
copy()浅复制:即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典也会随之改变
print("=================浅复制==================")
# copy()浅复制:即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典也会随之改变
old_dict = {"my_list": [1, 2, 3], "my_dict": {"a": 1, "b": 2}}
# 将old_dict字典浅复制给new_dict
new_dict = old_dict.copy()
print(old_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
# 改变old_dict中的可变数据类型的数据
old_dict["my_list"].append(4)
old_dict["my_dict"]["c"] = 3
# new_dict也会随着改变
print(old_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
print(new_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
2.深拷贝
# 引入 copy模块 ,使用deepcopy()
即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典将不再会随之改变
print("=================深复制==================")
# 引入 copy模块 ,使用deepcopy()
import copy
old_dict = {"my_list": [1, 2, 3], "my_dict": {"a": 1, "b": 2}}
# 将old_dict深复制给new_dict
new_dict = copy.deepcopy(old_dict)
print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
# 改变old_dict中的可变数据类型的数据
old_dict["my_list"].append(4)
old_dict["my_dict"]["c"] = 3
# new_dict不会再随着old_dict改变
print(old_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
总结
本问主要介绍了python中的字典数据类型,包括字典的定义,创建,遍历方式,和字典几种常用的操作方法,其中字典的集中操作方法,是我们必须要掌握的。学习一种数据类型,就是学习他的方法。本文详细演示了并讲解了其中增,删,改,查和复制的方法,希望能帮助到各位理解字典。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj