文章目录

  • 前言
  • 一、使用字典
    • 1.访问字典中的值
    • 2.在字典中添加键值对
    • 3.修改字典中的值
    • 4.删除字典中的键值对
    • 5.由类似对象组成的字典
  • 二、遍历字典
    • 1.遍历字典中的所有键值对
    • 2.遍历字典中的所有键
    • 3.遍历字典中的所有值
  • 三、嵌套
    • 1.字典列表
    • 2.在字典中嵌套列表
    • 3.在字典中嵌套字典
  • 总结

前言

本文的主要内容是介绍Python中字典及其使用,包括使用字典(添加、删除、修改等操作)、遍历字典以及字典与列表之间的嵌套使用,文中附有代码以及相应的运行结果辅助理解。


一、使用字典

在Python中,字典用放在花括号{}中的一系列键值对表示,键和值之间用冒号分隔,而键值对之间用逗号分隔,每个键都与一个值相关联,你可以使用键来访问与之相关联的值,与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

1.访问字典中的值

字典是由一系列键值对组成的,要访问字典中的值,就需要知道字典的名称,想要访问的字典键名。
下面是一个访问字典中值的例子。

fruit = {'name': 'apple', 'color': 'red', 'num': 5}  #有三个键值对的字典
print('name: ' + fruit['name']) #打印每个键所对应的值
print('color: ' + fruit['color'])
print('num: ' + str(fruit['num']))

运行结果如下图所示。

2.在字典中添加键值对

字典是一种动态结构,可以添加键值对,依次指定字典名、用方括号括起的键和相关联的值即可完成添加。
下面是在字典中添加键值对的例子。

fruit = {}  #创建一个空字典
print('1.fruit = ' + str(fruit))
fruit['name'] = 'apple'  #依次添加键值对
print('2.fruit = ' + str(fruit))
fruit['color'] = 'red'
print('3.fruit = ' + str(fruit))
fruit['num'] = 5
print('4.fruit = ' + str(fruit))

运行结果如下图所示。

3.修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。
下面是修改字典中值的例子。

fruit = {'name': 'apple', 'color': 'red', 'num': 5}
print('Before modify: fruit = ' + str(fruit))fruit['color'] = 'green' #修改键名为'color'的值
fruit['num'] = 20  #修改键名为'num'的值
print('After modify: fruit = ' + str(fruit))

运行结果如下图所示。

4.删除字典中的键值对

对于字典中需要删除的键值对,可使用del语句将相应的键值对彻底删除,使用del语句时需要指定字典名和要删除的键。
下面是删除字典中的键值对的例子。

fruit = {'name': 'apple', 'color': 'red', 'num': 5}
print('Before delete: fruit = ' + str(fruit))del fruit['color']  #删除键名为'color'的键值对
print('After delete: fruit = ' + str(fruit))

运行结果如下图所示。

5.由类似对象组成的字典

在前面的例子中,字典存储的是一个对象的多种信息,当然字典也可以存储多个对象的同一种信息。
下面是由类似对象组成字典的例子。

favorite_fruit = {'A': 'apple','B': 'orange','C': 'banana',
}
print("A's favorite fruit is " + favorite_fruit['A'] + ".")
print("B's favorite fruit is " + favorite_fruit['B'] + ".")
print("C's favorite fruit is " + favorite_fruit['C'] + ".")

运行结果如下图所示。


二、遍历字典

1.遍历字典中的所有键值对

遍历字典中的所有键值对使用的主要语句如下。
for key, value in name.items() ——其中key,value可以自己指定,name是字典名。
下面是遍历字典中的所有键值对的例子。

favorite_fruit = {'A': 'apple','B': 'orange','C': 'banana',
}for name, fruit in favorite_fruit.items():  #遍历字典中的所有键值对print(name + "'s favorite fruit is " + fruit + ".")

运行结果如下图所示。

可以看到,运行结果与三条print语句的输出是相同的。

2.遍历字典中的所有键

遍历字典中的所有键使用的主要语句如下。
for key in name.keys() ——其中key可以自己指定,name是字典名。
for key in name ——也可以省略.keys(),输出是一样的。
for key in sorted(name.keys()) ——按顺序遍历字典中所有的键。
下面是遍历字典中的所有键的例子。

favorite_fruit = {'B': 'apple','D': 'orange','C': 'banana','A': 'pear',
}print('1. With .keys() output:')
for name in favorite_fruit.keys():  #遍历字典中所有的键print(name)print('2. Without .keys() output:')  #遍历字典中所有的键——省略.keys()
for name in favorite_fruit:print(name)print('3. sorted() output:')
for name in sorted(favorite_fruit.keys()):  #按顺序遍历字典中所有的键print(name)

运行结果如下图所示。

由输出结果可知,加入sorted()函数后,键名果然是顺序输出的。

3.遍历字典中的所有值

遍历字典中的所有值使用的主要语句如下。
for value in name.values() ——其中value可以自己指定,name是字典名。
for value in set(name.values()) ——可以筛除掉value中的重复值。
下面是遍历字典中的所有值的例子。

favorite_fruit = {'B': 'apple','D': 'orange','C': 'banana','A': 'apple',
}print('1. All values output:')
for fruit in favorite_fruit.values():  #遍历字典中所有的值print(fruit)print('2. With sorted() output:')
for fruit in sorted(favorite_fruit.values()):  #按顺序遍历字典中所有的值print(fruit)print('3. With set() output:')
for fruit in set(favorite_fruit.values()):  #剔除重复的值print(fruit)

运行结果如下图所示。

由输出结果可知,加入set()函数后,输出的值是无序的,这是正常的,输出的值也确实没有重复的。


三、嵌套

有时候需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这样的操作称为嵌套,可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

1.字典列表

字典用于描述一个对象的多个特征,多个对象就需要多个字典,然后再把所有的字典存储在一个列表里,我们遍历列表即可遍历所有的对象及其对应的特征。
下面是字典列表的例子。

fruit_1 = {'name': 'apple', 'color': 'red', 'num': 15}
fruit_2 = {'name': 'banana', 'color': 'yellow', 'num': 10}
fruit_3 = {'name': 'watermelon', 'color': 'green', 'num': 20}
fruits = [fruit_1, fruit_2, fruit_3]  #将所有的字典存储在列表里
for fruit in fruits: #遍历列表print(fruit)

运行结果如下图所示。

下面是相对复杂的一个应用例子。

fruits = []  #创建一个空列表
for fruit_num in range(0,5): new_fruit = {'name': 'apple', 'color': 'red', 'num': 10}fruits.append(new_fruit)print('Before modify:')
for fruit in fruits:  #遍历列表print(fruit)for fruit in fruits[:2]:  #修改列表中前2个元素的字典属性if fruit['color'] == 'red':fruit['color'] = 'green'fruit['num'] = 20print('After modify:')
for fruit in fruits:  #遍历列表print(fruit)

运行结果如下图所示。

2.在字典中嵌套列表

每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
下面是在字典中嵌套列表例子。

favorite_fruit = {   #在字典中嵌套列表'A': ['apple', 'mango'],'B': ['orange'],'C': ['banana', 'pear'],
}for name, fruits in favorite_fruit.items():  #遍历字典中的键值对if len(fruits) == 1:  #列表的长度为1print(name+ "'s favorite fruits is :")for fruit in fruits:  #遍历字典中的列表print("\t" + fruit)else:  #列表的长度大于1print(name + "'s favorite fruits are :")for fruit in fruits:print("\t" + fruit)

运行结果如下图所示。

3.在字典中嵌套字典

有时候需要在字典中嵌套字典以更好的完成编程任务,比如某个网站有多个用户,每个用户都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。
下面是在字典中嵌套字典例子。

users ={  #在字典中嵌套字典'user_1': {'first_name': 'lebron','last_name': 'james',},'user_2': {'first_name': 'kobe','last_name': 'bryant',},'user_3': {'first_name': 'kevin','last_name': 'durant',},
}
for user, userinfo in users.items():  #遍历字典print(user + "'s name is " + userinfo['first_name'].title() + ' ' + userinfo['last_name'].title()+'.')

运行结果如下图所示。


总结

以上就是Python中字典及其使用的所有内容了,学会使用字典和遍历字典是最基础的操作,字典与列表的嵌套是重点也是难点所在,应当多加练习掌握其关键之处,以便在以后的编程中熟练运用。
本文参考书目:Python 编程 :从入门到实践 / (美) 埃里克•马瑟斯(Eric Matthes)著;袁国忠译

Python中字典及其使用相关推荐

  1. python中字典按键或键值排序

    字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...

  2. python中字典和集合的区别_Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...

  3. python英语字典程序修改_详解如何修改python中字典的键和值

    我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...

  4. Python中字典对象实现原理

    python中字典对象实现原理 注:字典类型是Python中最常用的数据类型之一,它是一个键值对的集合,字典通过键来索引,关联到相对的值,理论上它的查询复杂度是 O(1) 字典是Python的一种可变 ...

  5. python中字典的几种定义方式

    python中字典的定义方式有很多种,下面给出其中一些方式: 方式1 >>> d = dict(name='Bob', age=20, score=88) >>> ...

  6. python中可以作为定界符_在 Python 中,字典和集合都是用一对 作为定界符,字典的每个元素有两部分组成,即 和 ,其中 不允许重复。_学小易找答案...

    [多选题]路由器A的G0/0/1接口配置信息如下,下列说法正确的有?(多选) acl number 3000 rule 5 deny 17 rule 10 deny 89 rule 15 deny 6 ...

  7. 【Python】Python实战从入门到精通之四 -- 教你使用Python中字典

    本文是Python实战–从入门到精通系列的第四篇文章: Python实战从入门到精通第一讲–Python中的变量和数据类型 Python实战从入门到精通第二讲–Python中列表操作详解 Python ...

  8. python中字典使用_python中字典的使用

    python中的字典的特性: 在字典中的元素是散列存放的,没有顺序, 在进行增删改查的时候使用字典中需要的关键字(key)即可. 一: 创建字典 1)直接定义一个: dict = {'ob1':'co ...

  9. python中字典按键或键值排序_[宜配屋]听图阁

    字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...

  10. [转载] python中字典中追加_python 中字典中的删除,pop 方法与 popitem 方法

    参考链接: Python字典popitem() 1.pop 方法:删除指定的键值对,最后返回的是删除键的值. 2.popitem 方法:每次删除字典中的最后一个键值对,返回这个删除的键值对. 3.cl ...

最新文章

  1. 微软服务器sql server,解析:微软SQL Server 2008特性和功能
  2. [转]div 让文字或图片居中
  3. 在Jetson Xavier NX上安装pycuda报错:src/cpp/cuda.hpp:14:10: fatal error: cuda.h: No such file or directory
  4. Zookeeper内部的简单细节(一)
  5. QT读取Word文档
  6. 服务器显卡驱动修复,AMD发布2020年首个显卡驱动:一口气修复27个Bug
  7. 一图读懂基于鲲鹏处理器的全栈混合云华为云Stack6.5
  8. 查看Json的结构及内容:JsonViewerPackage
  9. 【面试】基于二叉树层次遍历相关问题的求解
  10. linux ape,Linux下APE歌曲的制作
  11. CSS固定定位(position: fixed;/background-attachment: fixed;)
  12. camera 测光模式 和 实际应用
  13. 你在工作中遇到过印象深刻的困难是什么,你怎么克服的?
  14. wifi模块服务器项目心得,一次关于WiFi 驱动移植的总结复盘
  15. 系统工程(SE)学习笔记(四)——系统架构设计
  16. 百度地图离线开发需求介绍
  17. Flash Android ANE 打包流程及使用方法
  18. 蓄电池电压检测单元 电池监控模块 24路电池电压采样模块电源检测
  19. [Swift]LeetCode976. 三角形的最大周长 | Largest Perimeter Triangle
  20. [实用技巧] (转帖)关于MyDocument.exe -- 打印店病毒

热门文章

  1. 9月VR大数据:Quest 2串流份额大幅下跌,App Lab应用超1400款
  2. Python金融学基础——夏普比率(Sharpe-ratio)和资产组合价值(portfolio-value)
  3. 基于asp.net737教学质量评价系统(评教)
  4. 零依赖监控解决方案:TDengine+Grafana落地实施
  5. 修改字符串指定范围的颜色
  6. 计算机组装与维护实训指导书,《计算机组装与维护实训指导书.doc
  7. 苹果电脑录屏怎么录内部声音?图文教学,1分钟快速学会
  8. 教你用树莓派Python打造一个音乐播放器
  9. 德国慕尼黑工业大学计算机学院,德国哪些大学有英文授课?慕尼黑工业大学有吗?...
  10. 米软CSV编辑查看工具,一款支持身份证号码的 CSV 免费编辑器