Python数据结构(二):字典

简介: Python数据结构(二):字典

1.字典类型的定义和使用


字典类型是“映射”的体现,映射其实就是一种键(索引)和值(数据)的对应。

键值对:键是数据索引的扩展,字典是键值对的集合,键值对之间无序。

我们可以采用大括号{}和dict()函数来创建字典,键值对用冒号:表示。(见如下代码)


#采用大括号来创建字典
d={"中国" : "北京" , "英国" : "伦敦" , "法国" : "巴黎"}
print(d)
输出结果如下:
{'中国': '北京', '英国': '伦敦', '法国': '巴黎'}
#采用dict()函数来创建
T1=[("中国" , "北京") , ("英国" , "伦敦") , ("法国" , "巴黎")]
d=dict(T1)
print(d)
输出结果如下:
{'中国': '北京', '英国': '伦敦', '法国': '巴黎'}

在这里要说明一点的是,字典中的键是唯一的,并且是不可变的,因此列表不能作为字典的键,而元组可以作为字典的键。我们来看下面这两个例子👇👇👇


#用元组来作为字典的键
d1={(1,2) : "a" , (3,4) : "b"}
print(d1)
输出结果如下:
{(1, 2): 'a', (3, 4): 'b'}
#用列表来作为字典的键
d1={[1,2] : "a" , [3,4] : "b"}
print(d1)
输出结果如下:
Traceback (most recent call last):
  File "D:/GameDownload/Python/python代码体验区/python基础1.py", line 1, in <module>
    d1={[1,2] : "a" , [3,4] : "b"}
TypeError: unhashable type: 'list'
#程序报错!!!

我们再来说一下字典的访问,更新,遍历和删除操作!!!👇👇👇

#访问字典元素
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1["Lisa"])
输出结果如下:
90
#更新字典元素
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
d1["Lisa"]=95
print(d1["Lisa"])
输出结果如下:
95
#遍历字典元素
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
for k in d1 :
            print(k,d1[k])
输出结果如下:
Adam 85
Lisa 90
Bart 75
Paul 90
#删除字典元素
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
del d1["Lisa"]
print(d1)
输出结果如下:
{'Adam': 85, 'Bart': 75, 'Paul': 90}
该命令也可以删除整个字典:del d1

2.字典处理函数及方法


以上就是我们常用的几种字典函数及方法,除此之外,我们还会介绍几种方法,那么我们来看下面的例子吧👇👇👇

以上就是我们常用的几种字典函数及方法,除此之外,我们还会介绍几种方法,那么我们来看下面的例子吧👇👇👇


#d.keys()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1.keys())
输出结果如下:
dict_keys(['Adam', 'Lisa', 'Bart', 'Paul'])
#d.values()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1.values())
输出结果如下:
dict_values([85, 90, 75, 90])
#d.items()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1.items())
输出结果如下:
dict_items([('Adam', 85), ('Lisa', 90), ('Bart', 75), ('Paul', 90)])


#k in d
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print("Tom" in d1)
输出结果如下:
False
#del d[k]
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
del d1["Adam"]
print(d1)
输出结果如下:
{'Lisa': 90, 'Bart': 75, 'Paul': 90}
#d.get()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
score1=d1.get("Adam")
print(score1) #存在,则返回这个键对应的值
score2=d1.get("Tom")
print(score2) #不存在,输出None
score3=d1.get("Tom" , "该学生不在这个字典中")
print(score3) #键不存在,就输出get后面的内容
输出结果如下:
85
None
该学生不在这个字典中
#d.copy()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
d2=d1.copy()
print(d2)
输出结果如下:
{'Adam': 85, 'Lisa': 90, 'Bart': 75, 'Paul': 90}
#d.clear()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
d1.clear()
print(d1)
输出结果如下:
{}
#d.pop()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1)
x=d1.pop("Adam")
print(x) #取出键Adam对应的值85
print(d1) #输出将这个值取出之后的字典元素
输出结果如下:
{'Adam': 85, 'Lisa': 90, 'Bart': 75, 'Paul': 90}
85
{'Lisa': 90, 'Bart': 75, 'Paul': 90}
#与d.get()的区别就是,
#在d.get()方法中使用之后的字典元素对应的键值对仍然存在,
#而在d.pop()方法使用之后的字典元素对应的键值对就不存在了。
#d.popitem()
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
print(d1)
x=d1.popitem()
print(x)
print(d1)
输出结果如下:
{'Adam': 85, 'Lisa': 90, 'Bart': 75, 'Paul': 90}
('Paul', 90)
{'Adam': 85, 'Lisa': 90, 'Bart': 75}
#这个与d.pop类似,只是d.popitem()方法是从字典中随机取出一个键值对
#len(d)
d1={"Adam" : 85 , "Lisa" : 90 , "Bart" : 75 , "Paul" : 90}
x=len(d1)
print(x) #返回字典d1中元素(键值对)的个数
输出结果如下:
4

那么以上就是博主总结的Python语言中字典的一些操作方法,喜欢的朋友们可以点波关注哦!!!

相关文章
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
55 1
|
6月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
9月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
240 66
|
10月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
234 59
|
10月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
245 59
|
10月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
223 55
|
9月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
179 20
|
10月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
187 33
|
8月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
258 2
|
10月前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
206 19

推荐镜像

更多