Python - 数据容器dict(字典)

简介: Python - 数据容器dict(字典)

字典的定义

使用{},不过存储的元素是一个个的:键值对,如下语法:

使用{}存储原始,每一个元素是一个键值对

每一个键值对包含Key和Value(用冒号分隔)

键值对之间使用逗号分隔

Key和Value可以是任意类型的数据(key不可为字典)

Key不可重复,重复会对原有数据覆盖

字典不可用下标索引,而是通过Key检索Value

字典数据的获取

字典同集合一样,不可以使用下标索引

字典可以通过Key值来取得对应的Value

my_dict={"A":100,"B":80,"C":60}
print(my_dict["A"])
print(my_dict["B"])
print(my_dict["C"])

100

80

60

字典的嵌套

字典的Key和Value可以是任意数据类型(Key不可为字典) 那么,就表明,字典是可以嵌套的

内容获取类似于二维数组

my_dict = {
    "sorce":{"A":77,"B":66,"C":33},
    "level":{"A":88,"B":86,"C":55},
    "grade":{"A":99,"B":96,"C":66}
}
print(my_dict["sorce"])
print(my_dict["sorce"]["A"])
print(my_dict["grade"]["C"])

{'A': 77, 'B': 66, 'C': 33}

77

66

字典的各种操作

image.png

新增与更新元素  [Key] = Value

语法:字典[Key] = Value,结果:字典被修改,新增了元素

注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值

my_dict={"A":100,"B":80,"C":60}
my_dict["D"]=40#新增加内容
print(my_dict)
my_dict["B"]=88#更新已有内容
print(my_dict)

{'A': 100, 'B': 80, 'C': 60, 'D': 40}

{'A': 100, 'B': 88, 'C': 60, 'D': 40}

删除元素 pop和del

语法:字典.pop(Key),结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除

del 字典[key] 为直接删除

my_dict={"A":100,"B":80,"C":60}
value=my_dict.pop("A")
print(value)
print(my_dict)
del my_dict["B"]
print(my_dict)

100

{'B': 80, 'C': 60}

{'C': 60}


清空字典 clear

语法:字典.clear(),结果:字典被修改,元素被清空

my_dict={"A":100,"B":80,"C":60}
my_dict.clear()
print(my_dict)

{}

获取全部的键 keys

语法:字典.keys(),结果:得到字典中的全部Key

my_dict={"A":100,"B":80,"C":60}
k=my_dict.keys()
print(k)
print(my_dict)

dict_keys(['A', 'B', 'C'])

{'A': 100, 'B': 80, 'C': 60}


遍历字典    

keys()

语法:for key in 字典.keys()

字典不支持下标索引,所以同样不可以用while循环遍历

my_dict={"A":100,"B":80,"C":60}
for key in my_dict.keys():
    print(f"等级:{key},分数:{my_dict[key]}")

等级:A,分数:100

等级:B,分数:80

等级:C,分数:60


values ()

my_dict={"A":100,"B":80,"C":60}
for i in my_dict.values():
    print(i)

100

80

60


items()

my_dict={"A":100,"B":80,"C":60}
for i in my_dict.items():
    print(i)
print(type(i))
print(type(my_dict.items()))

('A', 100)

('B', 80)

('C', 60)

<class 'tuple'>

<class 'dict_items'>


利用items依次打印key和value

my_dict={"A":100,"B":80,"C":60}
#4.依次打印key和value,通过索引
for key,value in my_dict.items():
    print(key,value)

A 100

B 80

C 60

容器通用功能总览

image.png

相关文章
|
18小时前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
5 1
|
2天前
|
开发者 Python
【Python 基础】递推式构造字典(dictionary comprehension)
【5月更文挑战第8天】【Python 基础】递推式构造字典(dictionary comprehension)
|
2天前
|
存储 JSON 数据挖掘
python序列化和结构化数据详解
python序列化和结构化数据详解
10 0
|
2天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
2天前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
4天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
Python 容器
Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)
Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)
Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)
|
1天前
|
JSON 数据格式 开发者
pip和requests在Python编程中各自扮演着不同的角色
`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
13 5
|
4天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
|
5天前
|
测试技术 Python
Python模块化方式编程实践
Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
24 2