超详细的Python字典讲解

一、概念

1.定义

字典是另一种可变容器模型,且可存储任意类型对象。是可变数据类型

字典类型的创建

1.字典的每个键值key=>value对用冒号:分隔,每个键值对之间用逗号,分割,整个字典包括在花括号{}中

d = {key1:value1,key:value}

2.使用内置函数dict()创建字典

  1. 通过映射函数创建字典

zip(lst1,lst2)

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一的。

值可以去任何数据类型,但键必须不可变得,如字符串,数字或元组:

dit = {'alice':'2341','betch':'4567','ceil':'1234'}

也可如此创建字典:

dict1 = 6:37}{'abc':456}

dict2 = {'abc':123,98}


''' 创建字典 ''' #方法一: dit = {'cat':'www','dog':'mmm'} #方法二: lst1 = [10,20,30] lst2 = ['cat','dog','car'] zipobj = zip(lst1,lst2) d = dict(zipobj) #方法三:首参数创建 t = (10,20,30) print({t:10})

2.访问字典里的值

把相应的键放入熟悉的方括弧

下面代码中,获取键的值得方法的区别:

如果key不存在,dict[key]报错,dict.get(key)可以指定默认值

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} 
print("dict['Name']: ", dict['Name'])#1.获取键得值 
print("dict['Age']: ", dict['Age']) 
print(dict.get('Name'))#2.获取键的值

输出结果:

如果用字典里没有的键访问数据,会输出错误如下:

3.修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值

dict = {'Name':'zara','age':7,'class':'first'} 
dict['age'] = 8 #更新 
dict['school'] = 'runoob' #添加 dict

输出结果:

注意:键值对的排列顺序与添加顺序不同

4.删除字典元素

能删单一的元素也能清空字典,清空只需一项操作

注意:删除的键值对永远消失了

字典中key是无序的

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} 
del dict['Name'] # 删除键是'Name'的条目 
dict.clear() # 清空字典所有条目 
del dict # 删除字典

5.字典键的特性

字典值可以没有限制地去任何Python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

2个重要的点需要记住:

  1. 不允许同一个键出现2次。创建时如果同一个键被复制两次,后一个只会被记住
  2. 键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行

6.遍历字典

6.1遍历所有键值对

shuren ={ "first_name": "杨", "last_name": "一", "age":"1", "city":"chognqin", } 
for key,value in shuren.items(): print("\nKey:" + key) print("Value:" + value)

对于遍历字典使用for循环,其中key和value可用任何名称代替

items()返回键值对列表

注意:遍历字典时,键值对的返回顺序与存储顺序不同

6.2遍历字典中所有键

shuren ={ "first_name": "杨", "last_name": "一", "age":"1", "city":"chognqin", } 
#遍历所有键 
for key in shuren.keys(): print(key.title())

keys()返回一个列表,其中包含字典中的所有值

6.3按顺序遍历字典中的所有键

要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。

shuren ={ "first_name": "杨", "last_name": "一", "age":"1", "city":"chognqin", } 
#按顺序遍历字典中的所有键 
for key in sorted(shuren.keys()): print(key)

6.4遍历字典中所有值

使用values()方法,返回一个值得列表,而不包含任何键。

shuren ={ "first_name": "杨", "last_name": "一", "age":"1", "city":"chognqin", } 
#遍历字典中所有的值 
for value in shuren.values(): print(value.title())

如果需要提取大量数据,且数据之间存在重复项,为剔除重复项,可使用集合(set)

shuren ={ "first_name": "杨", "last_name": "一", "age":"1", "city":"chognqin", "number":"1", } 
#遍历字典中所有的值,剔除重复项 
for value in set(shuren.values()): print(value.title())

二、字典内置函数&方法

1.内置函数

序号

函数及描述

1

cmp(dict1,dict2)

比较2个字典元素

2

len(dict)

计算字典元素个数,及键的总数

3

str(dict)

输出字典可打印的字符串表示

4

type(variale)

返回输入的变量类型,如果变量是字典就返回字典类型

2.内置方法

序号

函数及描述

1

dict.clear()

删除字典内所有元素

2

dict.copy()

返回一个字典的浅复制

3

dict.fromkev(seql,val)

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4

dict.get(key,default=None)

返回指定键的值,如果值不在字典中返回default值

5

dict.has_key(key)

如果键在字典dict里返回true,否则返回false

6

dict.items()

以列表返回可遍历的(键,值)元组数组

7

dict.keys()

以列表返回一个字典所有的键

8

dict.setdefault(key,default=None)

和get()类似,但如果键不存在于字典中,姜会添加键并将值设为defalut

9

dict.update(dict2)

把字典dict2的键/值对更新到dict里

10

pop(key[,default])

删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则,返回defalut值

11

dict.popitem()

返回并删除字典中的最后一对键和值

12

dict.values()

以列表返回字典中的所有值

三、嵌套

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

1.字典列表

如何管理成群结队的外星人?

创建一个外星人列表,其中每个外星人都是字典,包含有关该外星人的各种信息

alien_0 = {'color':'green','points':5} 
alien_1 = {'color':'yellow','points':10} 
alien_2 = {'color':'red','points':15} 
aliens = [alien_0,alien_1,alien_2] 
for alien in aliens: print(alien)

代码生成每个外星人

#创建一个用于存储外星人的空列表 
aliens = [] 
#创建30个绿色的外星人 
for alien_number in range(30): new_alien = {'color':'green','points':5,'speed':'slow'} aliens.append(new_alien) 
#修改前3个外星人的数据 
for alien in aliens[:3]: if alien['color'] == 'green': alien['color'] = 'yellow' alien['speed'] = 'medium' alien['points'] = 10 
#显示前5个外星人 
for alien in aliens[:5]: print(alien)
print("...")
#显示创建了多少个外星人 
print("Total number of aliens:" +str(len(aliens)))

2.在字典中 存储列表

使用情况:每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表

#存储所点披萨的信息
pizza = {'crust':'thick',        #外皮类型'topping':['mushrooms','extra cheese'],     #配料
}
#概述所电披萨
print("You oedered a" + pizza['crust'] + "-crust pizza" + "with the following toppings:")
for topping in pizza['topping']:print("\t"+topping)

3.在字典中存储字典

users = {'zhang3' : {'first' : 'san','last' : "zhang",'location' : 'princeton',},'li4' : {'first' : 'si','last' : "li",'location' : 'paris',}
}
for username,user_info in users.items():print("\nUsername :" + username)full_name = user_info['first'] + " " + user_info['last']location = user_info['location']print("\tFull name:" + full_name.title())print("\tlocation:" + location.title())

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不是詹姆斯了?皮蓬改口称乔丹是他的GOAT

NBA直播吧-nba直播在线观看免费高清直播录像回放NBA直播吧是一个专业NBA直播在线观看免费直播平台,专业提供nba直播免费高清在线观看中文jrs无插件直播,NBA录像回放,CBA直播,WNBA以及篮球直播,足球直播五大联赛等最新直…

蓝桥杯-常用STL(三)

常用STL 🎈1.映射🎈2.map的基础使用🔭2.1引入库🔭2.2构造一个映射🔭2.3插入一对映射🔭2.4判断关键字是否存在🔭2.5遍历映射🔭2.6清空 🎈1.映射 🔎映射是指两个…

Pycharm环境中,python为变量赋值的时候,如何自动添加空格?

在python中,为变量赋值的时候,如果没有加入空格,代码底部会有灰色波浪线,说明不符合Python规范。 可以在菜单栏选择code,reformat code。重新格式化代码,所有代码会自动格式化。 快捷方式为:ct…

数据库JSON类型到映射JAVA上

Mysql存放JSON数据如何映射JAVA实体类 概述:最近写在写SKU模块中,需要表中字段存放JSON类型数据,mybatis-plus在查询的时候如何跟JSON类型所匹配呢?再次记录一下。 直接上代码,后面有解释到底如何映射上的。 Mysql表…

UV-K5

该方法是安装到python的安装目录了,建立项目的时候勾选 Inherit globel site-packages (使用全局的站点包) ,就能调用安装路径的包文件环境。 cmd进入Dos窗口安装 pyserial 模块: pip install pyserial

阿里巴巴中国站获得公司档案信息 API 返回值说明

一、应用场景 阿里巴巴中国站获得公司档案信息 API接口的应用场景可以包括但不限于以下几种情况: 1、企业信息查询:API接口可用于查询企业的基本档案信息,如企业名称、注册地址、法定代表人、经营范围等。这些信息对于了解企业背景、信用状…

手机和windows的便签怎么共享账号使用

在忙碌的生活中,我经常需要在手机和电脑之间同步记事信息。可是,每次当我在手机上记下一些重要事项后,想要在电脑上查看或继续编辑时,总是遇到各种麻烦。因为手机和电脑上的便签软件各不相同,无法实现账号共享和内容同…

从0到1实现五子棋游戏!!

Hello,好久不见宝子们,今天来给大家更一个五子棋的程序~ 我们今天要讲的内容如下: 文章目录 1.五子棋游戏介绍1.1 游戏玩法介绍: 2.准备工作2.1 具体操作流程 3.游戏程序主函数4.初始化棋盘4.1.定义宏变量4.2 初始化棋盘 5.打印…

2024年2月最新微信域名检测拦截接口源码

这段PHP代码用于检测指定域名列表中的域名是否被封。代码首先定义了一个包含待检测域名的数组 $domainList,然后遍历该数组,对每个域名发送HTTP请求并检查响应内容以判断域名是否被封。 具体步骤如下: 1. 定义待检测的域名列表。 2. 遍历域名…

一、深度学习介绍

目录 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景

优化全球应用交付,详解GLSB是什么?

伴随着互联网的快速发展,网站的流量请求甚至能达到上千亿,越来越多的用户不满足于在单一数据中心提供服务,开始考虑容灾、用户就近访问以及全球应用交付等问题。在这样的需求下,全局服务器负载均衡技术(GSLB&#xff0…

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容: 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…

智慧应急与物联网相结合:物联网技术如何提升智慧应急响应能力

目录 一、引言 二、智慧应急与物联网技术的结合 三、物联网技术提升智慧应急响应能力的途径 四、物联网技术在智慧应急中的应用案例 五、物联网技术在智慧应急中面临的挑战与解决方案 挑战一:技术标准与规范不统一 解决方案: 挑战二:…

工业锅炉物联网:HiWoo Cloud为工业能源转型注入新动力

随着全球工业化的快速发展,工业锅炉作为工业生产的“心脏”,其能源效率和运行安全性越来越受到关注。然而,传统的工业锅炉管理往往依赖于人工监控和定期维护,这种方式不仅效率低下,而且难以确保设备的持续高效运行。在…

Matlab如何批量读取txt数据?科研效率UpUp第1期

最近帮几个亲朋好友整理博士毕业论文。 期间,我观察了他们的行为模式,发现其将大量的时间,不同程度地浪费在一些机械、重复性劳动上,导致效率低下。 博士尚且如此,想必还有很多人也深受其扰。 作为一个专业摸鱼人&a…

分享:大数据信用报告查询的价格一般要多少钱?

现在很多人都开始了解自己的大数据信用了,纷纷去查大数据信用报告,由于大数据信用与人行征信有本质的区别,查询方式和价格都不是固定的,本文就为大家详细讲讲大数据信用报告查询的价格一般要多少钱,希望对你有帮助。 大…

vue3 实现一个简单的输入框

需求背景 需要一个输入框,可以输入文字,添加表情,一开始用了富文本编辑器,有点大材小用,所以自己封装一个输入框组件。支持输入文字,选择表情/插入表情,支持组合键换行,使用enter 进…

DPU:未来计算的三大支柱之一

随着计算领域的不断发展,数据处理单元(DPU)的出现正在重塑数据中心和计算架构的未来。在本文中,我们深入探讨了DPU在该领域的重要性和作用,并将其与传统的中央处理器(CPU)和图形处理单元&#x…

2024年小程序云开发CMS内容管理无法使用,无法同步内容模型到云开发数据库的解决方案,回退老版本CMS内容管理的最新方法

一,问题描述 最近越来越多的同学找石头哥,说cms用不了,其实是小程序官方最近又搞大动作了,偷偷的升级的云开发cms(内容管理)以下都称cms,不升级不要紧,这一升级,就导致我…

亚马逊云科技实时 AI 编程助手 Amazon CodeWhisperer,开发快人一步

​ 亚马逊云科技:https://mic.anruicloud.com/url/1024 ​ Amazon CodeWhisperer 是一款 AI 编码配套应用程序,可在 IDE 中生成 整行代码和完整的函数代码建议,以帮助您更快地完成更多工作。在本系列 文章中,我们将为您详细介绍 A…