写在前面:大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与记录。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

文章目录

  • 一、字典
    • (1) 介绍字典
    • (2) 创建字典
    • (3) 访问字典
  • 二、遍历字典
    • (1) 遍历所有的键值对
    • (2) 遍历字典中所有的键
    • (3) 遍历字典中所有的值
  • 三、字典操作
    • (1) 增加键值对
    • (2) 删除键值对
    • (3) 修改字典中的值
  • 四、内置函数
    • (1) Python内置函数
    • (2) Python字典内置方法

一、字典

(1) 介绍字典

在 Python 中, 字典是由一系列的 键 — 值对 构成 。每个都与一个相关联,你可以使用键来访问与之相关联的值。在字典中,与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何 Python 对象用作字典中的值。

在字典中,每个键值对 key:value 用冒号 : 分隔,每个键值对之间用逗号分隔,整个字典包括在花括号 {} 中 ,格式如下所示:

dict = {key1 : value1, key2 : value2, key3 : value3}

除此之外,还需要注意的是,字典需严格遵循下面两条规则:

  • 键必须是唯一的,但值则不必;
  • 值可以取任何数据类型,但键必须是不可变的,只能取如字符串,数字等类型。

(2) 创建字典

1、可以先创建一个空字典,再往里加键和值,演示如下:

dict = {}
dict["name"] = "AI Jun"
dict["major"] = "Computer Vision"
dict["date"] = "2021/2/6"
print(dict)

输出如下:

{'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}

2、当然,也可以直接创建,演示如下:

dict = {'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}
print(dict)

输出结果:

{'name': 'AI Jun', 'major': 'Computer Vision', 'date': '2021/2/6'}

当然,也可以将键换成数字,如下所示:

dict1 = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
print(dict1)

输出结果:

{1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}

(3) 访问字典

在Python中,我们可以根据键访问值,演示如下:

dict1 = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
print("dict1中1对应的值是:", dict1[1])
print("dict1中2对应的值是:", dict1[2])
print("dict1中3对应的值是:", dict1[3])

结果如下:

dict1中1对应的值是: AI Jun
dict1中2对应的值是: Computer Vision
dict1中3对应的值是: 2021/2/6

二、遍历字典

(1) 遍历所有的键值对

一般采用 for 循环来遍历整个字典。为了分别获取键和值,所以需要声明两个变量,用于存储键值对中的键和值。对于这两个变量,可使用任何名称。下面的代码使用的是key和value,如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key, value in dict.items():print(key, value)

使用方法 items() 返回一个键值对列表。接下来, for 循环依次将每个键 — 值对存储到指定的两个变量中。输出如下:

1 AI Jun
2 Computer Vision
3 2021/2/6

注:即便遍历字典时,键值对的返回顺序也与存储顺序不同。 Python 不关心键值对的存储顺序,而只跟踪键和值之间的关联关系。

(2) 遍历字典中所有的键

当不需要使用字典中的值时,我们可以使用 方法keys() 遍历字典中所有的键,并将其一一打印出来,如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key in dict.keys():print(key)

输出结果:

1
2
3

事实上,遍历字典时,会默认遍历所有的键。因此,上述代码中的 for key in dict.keys():换成for key in dict:,输出将不变。只是显式地使用方法 keys() 可让代码更容易理解。

注:使用方法title()可使首字母大写,这对于字符串类型的键有用。

(3) 遍历字典中所有的值

当只需要遍历字典中所有的值时,可使用方法 values() ,它返回一个值列表,而不包含任何键。使用方法如下:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
for key in dict.values():print(key)

输出结果:

AI Jun
Computer Vision
2021/2/6

这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,但如果数据很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合set (集合类似于列表,但每个元素都必须是独一无二的)。使用方法如下所示:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6', 4: 'AI Jun'}
for key in set(dict.values()):print(key)

程序输出:

AI Jun
Computer Vision
2021/2/6

注:通过方法set()将values()得到的值列表转换成了集合的形式

三、字典操作

(1) 增加键值对

字典是一种动态结构,可随时在其中添加键值对。演示如下:

dict = {1: 'AI Jun', 2: 'Computer Vision'}
dict[3] = '2021/2/6'
print(dict)

输出结果:

{1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}

(2) 删除键值对

对于字典中不再需要的信息,可使用 del 语句将相应的键值对彻底删除。演示如下:

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
del dict[1]
print(dict)

输出结果:

{2: 'Computer Vision', 3: '2021/2/6'}

(3) 修改字典中的值

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

dict = {1: 'AI Jun', 2: 'Computer Vision', 3: '2021/2/6'}
dict[2] = "AI"
print(dict)

输出结果:

{1: 'AI Jun', 2: 'AI', 3: '2021/2/6'}

四、内置函数

(1) Python内置函数

函数 描述
len(dict) 返回字典元素个数,即键值对的总数
str(dict) 可以使输出字典以打印的字符串表示

(2) Python字典内置方法

函数 描述
dict.items() 以列表的形式返回可遍历的(键, 值)
dict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
dict.values() 返回一个迭代器,可以使用 list() 来转换为列表
dict.clear() 删除字典内所有元素,得到的是一个空字典
dict.copy() 返回一个字典的浅复制

-> 回到【人生苦短,我学 Python】总目录 <-


由于水平有限,博客中难免会有一些错误,有纰漏之处恳请各位大佬不吝赐教!

【人生苦短,我学 Python】基础篇——字典(Day10)相关推荐

  1. 杨洋python课程提高篇_杨洋老师《全民一起玩Python 基础篇+提高篇》

    全民一起玩Python 基础篇+提高篇 适用人群: 想用轻松系统的方式,从零开始真正理解掌握Python.进而学习办公.网抓.数据.AI.网站等技术的各界人士 课程概述: 制作精细.自带吐槽,每节课程 ...

  2. 杨洋python课程提高篇_杨洋老师:全民一起玩Python 基础篇+提高篇,老师幽默严谨不枯燥的学习编程...

    课程介绍 本套课程出自杨洋老师的全民一起玩Python 基础篇+提高篇官网售价299元,程保持了杨洋博士老师幽默严谨不枯燥的学习编程,清晰全面的授课风格,配有丰富的教学演示和插图.动画,是初学者学习P ...

  3. 面试题之第一部分(Python基础篇) 80题

    第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...

  4. python包括哪些部分_第一部分 Python基础篇

    第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...

  5. 经典Python面试题之Python基础篇

    Python基础篇 1. 为什么学习Python? 2. 通过什么途径学习的Python? 3. Python和Java.PHP.C.C#.C++等其他语言的对比? 4. 简述解释型和编译型编程语言? ...

  6. python删除文件夹无法访问_人生苦短 我学Python——anaconda和Jupyter notebook安装使用...

    一.人生苦短 我学Python 为什么学习Python? 1.应用范围广 很多网站是用Python开发的,比如豆瓣,还有YouTube等等. 2.效率高,和其他编程语言对比,可以用少得多的代码写出相同 ...

  7. Python基础篇(七)

    Python基础篇(七) 前言 一.元组 1.1 元组的定义 1.2 元组的常见操作 二.字典 2.1 字典的语法 2.2 字典常见操作 2.3 字典的循环遍历 三.任务清单 3.1 基础练习 3.2 ...

  8. pythondd_工程脚本插件方案 - c集成Python基础篇

    工程脚本插件方案 - c集成Python基础篇 序: 为何要集成脚本,怎样在工程中集成Python脚本. 在做比较大型的工程时,1般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用 ...

  9. 带你学python基础:列表List

    在上一节中带你学python基础:变量和基本数据类型中,已经讲到了列表List如何创建和简单的使用,在这一节中,我们将更加细致入微的了解一下List更多的操作! 一.列表是什么? 列表是什么就是:一个 ...

  10. 字符串从右截取_跟运维组学Python基础day04(字符串str的索引和切片)

    内容回顾 跟运维组学Python基础 day03 格式化输出 %s name = input('Pleases input your name: ') # Zanaoprint('My name is ...

最新文章

  1. python学到什么程度可以写爬虫-月薪2万的爬虫工程师,Python需要学到什么程度?...
  2. java事件处理过程分布写_Java 9中的进程处理
  3. unity UI事件
  4. 录像的视频如何在画面中实时加上时间戳
  5. (转)使用Spring注解方式管理事务与传播行为详解
  6. UVALive 6909 Kevin's Problem 数学排列组合
  7. php按条件修改xml,php 修改、增加xml结点属性的实现代码
  8. 【文摘】《创新者》-沃尔特·艾萨克森
  9. 运算放大器权威指南(第3版) (op amps for everyone)_OP高质量,ED多版本,有钱的动物狂想曲就是能为所欲为...
  10. Fiddler对安卓模拟器里的APP抓包(步骤详细,各种抓包工具总结)
  11. java开发autocad_.NET AutoCAD二次开发之路(四、文字篇)
  12. CIS Benchmarks
  13. 安卓Android百度输入法皮肤-疯狂码字的快乐-《Write 2022升级版》
  14. html中的flv视频播放器
  15. LBM学习讨论群推荐
  16. lms全称是什么意思_lms是什么意思?
  17. hulu dpp_什么是直播电视的Hulu,它可以代替您的有线电视订阅吗?
  18. windows驱动快速入门
  19. Smarty入门教程一----Smarty的安装
  20. asp毕业设计——基于asp+access的商品销售网站设计与实现(毕业论文+程序源码)——商品销售网

热门文章

  1. sklearn.datasets.base中Bunch类
  2. 大学学计算机需要英语,大学学什么才能不被计算机淘汰
  3. K-S检验两样本分布是否相同
  4. CentOS 7重启网卡出现RTNETLINK answers:File exists
  5. Kata Containers用例
  6. Riverbed:SDN向广域网扩展为企业带来哪些价值
  7. handsome for Typecho主题重建备忘
  8. java mail eml_使用JavaMail解析EML文件
  9. itsm软件_itsm软件的主要功能
  10. andriod 无网络逻辑设置和判断