Python基础-6-字典
admin
2024-03-02 16:07:37
0

一:简单的字典示例

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

2、在Python中,字典用放在花括号({})中的一系列键值对表示。键和值之间用冒号分隔,而键值对之间用逗号分隔。

alien_0 = {'color':'green', 'points':5}
print(alien_0['color'])
print(alien_0['points'])# RESULT
'''
green
5
'''

二:使用字典

1、访问字典中的值

alien_0 = {'points':5}new_points = alien_0['points']
print(f"You jush earned {new_points} points!")# RESULT
'''
You jush earned 5 points!
'''

2、创建空字典/添加键值对

字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名,用方括号括起的键和相关联的值。

alien_0 = {}
print(alien_0)
alien_0['points'] = 5
alien_0['x_position'] = 0
alien_0['y_position'] = 10
print(alien_0)# RESULT
'''
{}
{'points': 5, 'x_position': 0, 'y_position': 10}
'''

3、修改字典中的值

alien_0 = {'color':'green', 'points':5}
print(f"color:{alien_0['color']}")
alien_0['color'] = 'yellow'
print(f"color:{alien_0['color']}")# RESULT
'''
color:green
color:yellow
'''

4、删除键值对

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

alien_0 = {'color':'green', 'points':5}
print(alien_0)
del alien_0['color']
print(alien_0)# RESULT
'''
{'color': 'green', 'points': 5}
{'points': 5}
'''

5、使用get()来访问值

get()的第一个参数用于指定键,必不可少的;第二个参数为指定的键不存在时要返回的值,可选。

如果指定的键有可能不存在,应考虑使用方法get(),而不要使用方括号表示法,那会显示错误(Traceback)

alien_0 = {'color':'green'}
points_value = alien_0.get('points')
print(points_value)
points_value = alien_0.get('points', 'No point value assigned.')
print(points_value)points_value = alien_0['points']
print(points_value)
# RESULT
'''
None
No point value assigned.
Traceback (most recent call last):File "/home/zhaotj/work/python-script/list.py", line 9, in points_value = alien_0['points']
KeyError: 'points'
'''

三:遍历字典

字典可用于以各种方式存储信息,因此有多种遍历方式:可遍历字典的所有键值对,也可仅遍历键或值。

1、遍历所有键值对

方法items()返回一个键值对列表。使用for循环可依次遍历字典所有键值对。

user = {'username' : 'efermi','first' : 'enrico','last' : 'fermi'
}for key, value in user.items():print(f"\nKey:{key}")print(f"Value:{value}")
# RESULT
'''
Key:username
Value:efermiKey:first
Value:enricoKey:last
Value:fermi
'''

2、遍历字典中的所有键

在不需要使用字典中的值时,可使用方法keys(),同时也可以将其省略效果一样。

user = {'username' : 'efermi','first' : 'enrico','last' : 'fermi'
}for key in user.keys():print(f"Key1:{key}")for key in user:print(f"Key2:{key}")
# RESULT
'''
Key1:username
Key1:first
Key1:last
Key2:username
Key2:first
Key2:last
'''

方法keys()实际返回的是一个列表,其中包含了字典中的所有键。因此也能检查某个对象是否包含在这个列表中。

favorite_languages = {'jen' : 'python','sarah' : 'c','edward' : 'ruby','phil' : 'python'
}if 'phil' in favorite_languages.keys():print(f"Hello phil, I see you love {favorite_languages['phil']}")if 'abc' not in favorite_languages.keys():print("adc isn't exit")# RESULT
'''
Hello phil, I see you love python
adc isn't exit
'''

3、遍历字典中的所有值

如果只需要字典中的值,可使用方法value()来返回一个值列表,不包含任何键。

favorite_languages = {'jen' : 'python','sarah' : 'c','edward' : 'ruby','phil' : 'python'
}for value in favorite_languages.values():print(value)# RESULT
'''
python
c
ruby
python
'''

这种做法提取字典中的值,而没有考虑是否重复。为了剔除重复项,可使用集合(set)。

集合中的每个元素都必须是独一无二的,集合和字典都是用一花括号定义。当花括号内没有键值对时,定义的很可能是集合。不同于列表和字典的是集合不会以特定的顺序存储元素。

favorite_languages = {'sarah' : 'c','jen' : 'python','edward' : 'ruby','phil' : 'python'
}for value in set(favorite_languages.values()):print(value)# RESULT
'''
ruby
python
c
'''

四:嵌套

将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。

1、在列表中存储字典

创建10个字典new_alien,并增加到空列表aliens中。并通过切片的方式遍历出索引2~4的字典键值对。最后通过函数len()输出列表长度。

aliens = []
for num in range(10):new_alien = {'num':num, 'color':'green', 'points':'5', 'speed':'slow'}aliens.append(new_alien)for alien in aliens[2:5]:print(alien)print(f"Total number of aliens:{len(aliens)}")# RESULT
'''
{'num': 2, 'color': 'green', 'points': '5', 'speed': 'slow'}
{'num': 3, 'color': 'green', 'points': '5', 'speed': 'slow'}
{'num': 4, 'color': 'green', 'points': '5', 'speed': 'slow'}
Total number of aliens:10
'''

2、在字典中存储列表

当需要在字典中将一个键关联到多个值时,可以在字典中嵌套一个列表。

favorite_languages = {'sarah' : ['c', 'c++'],'jen' : ['python', 'shell'],'edward' : ['ruby'],'phil' : ['python', 'java']
}for name, languages in favorite_languages.items():print(f"{name.title()}'s favorite languages are:")for language in languages:print(language.title())# RESULT
'''
Sarah's favorite languages are:
C
C++
Jen's favorite languages are:
Python
Shell
Edward's favorite languages are:
Ruby
Phil's favorite languages are:
Python
Java
'''

3、在字典中存储字典

user = {'zhangsan':{'first':'zhang','last':'san','location':'shenzhen'},'lisi':{'first':'li','last':'si','location':'guangzhou'}
}for username, userinfo in user.items():print(f"Username:{username}")full_name = f"{userinfo['first']} {userinfo['last']}"location = userinfo['location']print(f"Full name:{full_name.title()}")print(f"Location:{location.upper()}")# RESULT
'''
Username:zhangsan
Full name:Zhang San
Location:SHENZHEN
Username:lisi
Full name:Li Si
Location:GUANGZHOU
'''

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...