python 字典的概念叙述和使用方法
作者:兔C 发布时间:2021-11-08 00:42:06
1. 一个简单的字典
我们先从写一个简单的字典示例开始,
顺便看一下 python 字典的语法。
student ={'姓名':'张三','年龄':15} #第一个值 张三是字符串类型,所以用''包裹,
#第二个值是整数类型,所以没有使用''
print(student['姓名'])
print(student['年龄'])
字典和元组一样,都用 {花括号} 来包裹中间的元素,
元组内的元素是不可以改变的。而字典中的元素内容都是成对的。
歪曲一点解释的话:
我们使用列表时,如果要操作内部的元素,列表有索引下标,
通过索引下标,我们就可以操作。而字典呢,
字典就的元素都是成对的,这也就好像我们自己来设置索引下标,
不过存储的值是多少,我们只要记得自己设置的“索引”就可以操作到元素。
我们来看一下输出内容:
现在我们对字典有了简单的认识,
具体如何取使用,我们继续看下面第二个标题。
2. 使用字典
在 python中,字典是一系列键-值对,每个键都有一个与之对应的值,
我们可以使用键来访问相关联的值。与键相关联的值可以是数字、字符串、列表、乃至字典。
python中的任何对象都可以作为字典中的值。
2.1 访问字典中的值
字典中可以包含任意数量的键-值对,想要访问一个字典当中的值,
需要通过与其对应的键来实现访问。
python
student ={'姓名':'李四'}
print(student['姓名'])
2.2 添加键-值对
字典是一种动态结构,可随时在其中添加键-值对。
现在我们有了创建好的字典,那代码如何写才能向其中添加键-值对呢?
student ={'姓名':'李四'}
student['年龄'] =15
student['班级'] ='3年1班'
#打印整个字典
print(student)
我们来看一下添加后的结果:
这里要告诉大家一点,
键-值对的排列顺序与添加顺序不同,Python 不关心键-值对的添加顺序,
而只关心键和值之间的关联关系。
2.3 修改字典中的值
记不记得上篇文章,我们聊过一个话题,
就是列表 用 [方括号] 而元组 用 {花括号},字典也是用{花括号}
而三者不管是哪一个,进行值或元素 操作的时候,都是用的[方括号]。
个人感觉还是挺合理的,前两者有索引下标,后者随波逐流,感觉很方便用户使用。
我们来写一下修改字典值的代码吧。
student = {'姓名':'张三','年龄':15}
#现在将 姓名更改成 李四,年龄更改为18
student['姓名'] = '李四'
student['年龄'] = 19
print(student)
看一下,是不是成功修改了呢。
2.4 删除键-值对
对于列表中不在需要的信息,也可以使用像删除列表元素时的del语句进行删除。
看一下 del 语句删除字典中的键值对该怎么写:
# 使用 del 语句删除时,必须指定字典名和要删除的键
student = {'姓名':'张三','年龄':15}
print(student)
del student['年龄']
print(student)
#被删除的键值对是永久消失的
3. 遍历字典
一个 python 字典可能只包含几个键-值对,也可能包含数百万个键-值对。
鉴于字典可能包含大量的数据,python支持对字典进行遍历。
字典可用于各种方式存储信息,因此有多重遍历字典的方式:可遍历字典的所有键-值对、键或值。
3.1 遍历所有键-值对
我们先来创建一个存储学生信息的字典:
student ={'姓名':'张三','年龄':'10','班级':'三年1班'}
接下来我们通过 for循环来获取字典中的所有信息:
for key,value in student.items():
print("Key键\t"+key)
print("Value值\t"+value)
// items( ) 这个函数会返回字典当中的所有键-值
而key 和 value 是我们要遍历字典时,用于存储信息的临时变量。
你也可以另起名称,就像遍历列表时一样,只要见名知意即可。
我们来看一下本段代码的执行结果:
3.2 遍历字典中的所有键
在不需要使用字典中的值时,方法 keys() 很有用。
下面我们来写段示例,演示一下对于只遍历键的情况。
student ={'姓名':'张三','年龄':'10','班级':'三年1班'}
for key in student.keys():
print('key:'+key)
看一下输出结果:
3.3 按顺序遍历字典中的所有键
字典明确的记录着自己所存储的键和值之间的关系,但获取字典元素时,
获取顺序是不可预测的。
想以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。
python提供函数 sorted() 来获得按特定顺序排列的键列表的副本。
students ={'张三':'c','李四':'python','王五':'java','赵六':'c++'}
for key in sorted(students.keys()):
print(key+'同学,欢迎你学习 python 语言')
我们来输出看一下,sorted() 函数是否帮助我们正确的排列了列表中的键。
3.4 遍历字典中的所有值
在 python 中,针对字典中保存的所有值,可使用 values() 函数,
这个函数会返回一个值列表,不包含键。
students ={'张三':'c','李四':'python','王五':'java','赵六':'c++'}
for value in students.values():
print(value)
这样使用 values() 函数就可以成功将字典中包含的值,全部输出。
但如果有这样的一个问题:假如字典中保存了成千上万的值,
通过 values 全部输出是没有问题了,但是成千上万的数据量难免出现重复内容。
怎样解决重复内容的问题呢?
我们可以借助 python 提供给我们的另一个函数:set ()
students ={'张三':'c','李四':'python','王五':'java','赵六':'c++'}
for value in set(students.values()):
print(value)
通过set 函数,将找寻字典中没有重复内容的所值,保存在一个集合中。
4.嵌套
有时候,我们需要将字典存储在列表中,或者将列表作为值存储在字典中。
这种操作称为嵌套。
4.1 字典列表
我们使用字典存储学生的信息,
假设,第一个创建的字典存储了张三同学的信息,
那么第二个同学的信息如何保存呢?
考虑到这个问题,我们可以继续使用字典存储同学的信息,
如果有新同学的信息需要存储,我们就继续创建新的字典,
当学生的信息存储完成之后,在将字典存储到列表当中,
使用列表来存储所有存储了学生信息的字典。
student1 ={'姓名':'张三','年龄':'15','班级':'初三一班'}
student2 ={'姓名':'李四','年龄':'15','班级':'初三二班'}
student3 ={'姓名':'王五','年龄':'15','班级':'初三一班'}
students =[student1,student2,student3]
for student in students:
print(student)
我们来看一下遍历列表的输出结果:
4.2 range() 函数
上述示例中,我们创建每个学生存储学生的字典,都是手动编码的,
先不考虑信息的问题,如何解决自动创建呢?
我们可以借助python 提供给我们的 range() 函数
#先创建一个空列表
students =[]
#设置批量创建字典存储学生信息的过程
for student in range(30):
student_zd = {'姓名':'张三','年龄':15,'班级':'初三一班'}
students.append(student_zd)
#遍历列表,输出存储的前五个信息
for stu in students[:5]:
print(stu)
输出存储的前五个信息时,我们就用到了前面章节中掌握的切片知识点了。
4.3 在字典中存储列表
我们来写一个讲列表存储在字典中的示例:
#创建一个用于存储披萨信息的字典
#存储配方时,将值的形式以列表进行存储
pizza ={
'品名':'榴莲披萨',
'配方':['榴莲','白面','矿物质水','芝麻']
}
# 尝试打印字典中的 普通形式键值对
print('推荐你品尝一下:'+pizza['品名'])
# 尝试打印字典中 以列表形式存储的键值对
print('榴莲披萨是这样做的:\n')
for pa in pizza['配方']:
print(pa)
将列表存储在字典当中,只要捋清逻辑,
其实还是很好实现的,我们来看一下输出结果:
4.4 在字典中存储字典
user ={
'user1':{'userName':'张三','userInfo':'QQ邮箱'},
'user2':{'userName':'李四','userInfo':'网易邮箱'}
}
#尝试打印字典中的值
for key,value in user.items():
print('正在尝试获取用户信息....')
print('---------------------')
print('当前正在解析用户:'+key+'的信息')
uName = '用户'+value['userName']+'正在以'+value['userInfo']+'的登录形式访问网站'
print(uName)
在本段示例中,我们想创建了一个存储用户信息的字典,
该字典的键是用户的登录id,其实就是一个字符串。
而该键所对应的值是一个嵌套的新字典,在该字典中,正常存储信息。
在输出时,
我们先遍历 得到字典的key值,还有value值,
输出用户的信息值,也就是登录id,直接输出字典key即可。
而该key所对应的字典的值,利用key[索引到字典内部嵌套的字典的key],
其实很简单,就是利用被嵌套字典的key输出它的value
最后我们来看一下输出结果:
来源:https://blog.csdn.net/tianlei_/article/details/128987592
猜你喜欢
- 本文实例讲述了Python基础之字典常见操作。分享给大家供大家参考,具体如下:Python字典Python 中的字典是Python中一个键值
- 请教:如何在现存的文档中动态嵌入一段JS?如果是一段CSS呢?创建一个<script></script>并在scri
- 方法1: 将shell执行的结果保存到字符串def run_cmd(cmd): result_str='' process
- 一、前言我们在使用pycharm写代码时可能出现过下面这种情况,不小心点到了ignore ....:这样会导致整个代码都没有错误提示了,类似
- 一、修改表格数据类型 DataFrame 列的顺序实战场景:Pandas 如何修改表格数据类型 DataFrame 列的顺序1.1
- 本文实例讲述了Thinkphp 框架基础之源码获取、环境要求与目录结构。分享给大家供大家参考,具体如下:获取ThinkPHP获取ThinkP
- 切片是 Python 中最迷人最强大最 Amazing 的语言特性(几乎没有之一),在《Python进阶:切片的误区与高级用法》中,我介绍了
- 本文实例讲述了PHP封装的PDO数据库操作类。分享给大家供大家参考,具体如下:<?phpclass DatabaseHandler {
- 引言在经历过一些尝试之后,觉得在当下的项目中运用链路压测的能力,不等着其他人了。链路这个词其实不如路径通俗易懂,跟产品沟通这个比较有效率。具
- 当数据库的数据量读写频繁的时候,我们就要考虑把数据库的读写分开,以提高数据库的使用效率,(当然还有其他用处比如,备份数据),这个时候我们就要
- python给数据加上高斯噪声一开始用MATLAB给数据加噪声很简单,就一句话:% 给数据加指定SNR的高斯噪声signal_noise =
- 具体代码如下所示:from operator import itemgetter #itemgetter用来去dict中的key,省去了使用
- 首先,建立一个Conn的连接对象,然后连接到数据库data.mdb中,取得连接句柄后,把它保存在session("conn&quo
- 解释一个机器学习模型是一个困难的任务,因为我们不知道这个模型在那个黑匣子里是如何工作的。解释是必需的,这样我们可以选择最佳的模型,同时也使其
- 1. Pytorch中的广播机制如果一个Pytorch运算支持广播的话,那么就意味着传给这个运算的参数会被自动扩张成相同的size,在不复制
- Python小白一只,正在成长,程序自己设计,很多不足,算法很多地方能优化。欢迎大佬来指教。游戏效果创建设置类,储存游戏基础数据可以不使用这
- 1.引言本文是Python生态系统中一些有用技巧的分享。大多数技巧只是使用标准库中的包,但其他一些技巧会涉及一些第三方包。在开始阅读本文内容
- 第1题:Python里面如何实现tuple和list的转换?函数tuple(seq)可以把所有可迭代的(iterable)序列转换成一个tu
- 前言Python语言处理字符串、数组类的问题时有一定概率需要使用切片方法,比如:Leetcode_5。学习官方解法时发现切片的索引可以超出字
- 良好的编程习惯是每个程序员都应该具备的工作素质,在我的软件生涯中屡屡发现一些程序员的身上总有这样或者那样的坏毛病。这些毛病在一些从业时间不是