【新人系列】Python 入门(九):数据结构 - 中

✍ 个人博客:https://blog.csdn.net/Newin2020?type=blog
📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html
📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~
📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~
❤️ 如果有收获的话,欢迎点赞 👍 收藏 📁 关注,您的支持就是我创作的最大动力 💪

4. dict 字典

4.1 字典定义

Python 字典(dict)是 Python 中唯一的映射类型,是一种无序的、可变的序列,它的元素以 “键值对(key-value)” 的形式存储。

在这里插入图片描述

字典中将各元素对应的索引称为键(key),各个键对应的元素称为值(value),键及其关联的值称为 “键值对”。

创建字典

  1. 使用 { } 创建字典

使用 { } 创建字典的语法格式如下:

dictname = {'key': 'value1', 'key2': 'value2', ..., 'keyn': 'valuen'}

由于字典中每个元素都包含两部分,分别是键(key)和值(value)。因此在创建字典时,键和值之间使用冒号 : 分隔,相邻元素之间使用逗号 , 分隔,所有元素放在大括号 { } 中。

alien_0 = {'color': 'green','points': 5}
print(alien_0['color'])    # green
  1. 通过 fromkeys( ) 方法创建字典

Python 中,还可以使用 dict 字典类型提供的 fromkeys( ) 方法创建带有默认值的字典,具体格式为:

dictname = dict.fromkeys(list, value=None)

其中,list 参数表示字典中所有键的列表(list);value 参数表示默认值,如果不写,则为空值 None。

knowledge = ['语文', '数学', '英语']
scores = dict.fromkeys(knowledge)
print(scores)   # {'语文': None, '数学': None, '英语': None}
scores = dict.fromkeys(knowledge, 90)
print(scores)   # {'语文': 90, '数学': 90, '英语': 90}
  1. 通过 dict( ) 映射函数创建字典

格式 1:

dict1 = dict(key1="test1", key2="test2", key3="test3")

格式 2:

demo = [('two',2), ('one',1), ('three',3)]
dict2 = dict(demo)

格式 3:

keys = ['one', 'two', 'three']    # 还可以是数值或元组
values = [1, 2, 3]    # 还可以是字符串或元组
dict3 = dict(zip(keys, values))

4.2 增删改查

访问字典

列表和元组是通过下标来访问元素的,而字典不同,它通过键来访问对应的值。

  1. 访问字典元素
dictname[key]

其中,dictname 表示字典变量的名字,key 表示键名。注意,键必须是存在的,否则会抛出异常。

  1. get( ) 方法
dictname.get(key[,default])

其中,dictname 表示字典变量的名字;key 表示指定的键,是必不可少的;default 用于指定要查询的键不存在时,此方法返回的默认值,如果不手动指定,就会返回 None,因此是可选的。

alien = {'color': 'green'}
print(alien.get('color','0'))      # green
print(alien.get('points','0'))     # 0

Tips:
判断字典是否包含指定键值对的键,可以使用 in 或 not in 运算符。

添加、修改和删除键值对

alien = {'color': 'green','points': 5}#添加键值对
alien['x_position'] = 0
alien['y_position'] = 25#修改键值对
alien['color'] = 'yellow'#删除键值对
del alien['points']
print(alien_0)    # {'color': 'yellow', 'x_position': 0, 'y_position': 25}

查看 dict 所有方法

Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法。

>>> dir(dict)
['clear', 'copy', 'fromkeys', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values' ]

遍历字典

现在我定义了一个 favorite 字典,我想遍历字典中的值,则有三种方式可以遍历。
favorite = {‘1’: ‘Python’, ‘3’: ‘C++’, ‘2’: ‘Python’}

  • 遍历所有键
# keys()方法用于返回字典中的所有键(key)
for name in favorite.keys():print(name)# 也可以不用keys,会默认遍历所有key
for name in favorite:print(name)
此外,可以通过 sorted( ) 来获得特定顺序排列的键列表的副本:
for name in sorted(favorite.keys()):print(name)
  • 遍历所有值
# values()方法用于返回字典中所有键对应的值(value)
for language in favorite.values():print(language)
"""
Python
C++
Python
"""

此外,通过对包含重复元素的列表调用 set( ) ,可让 Python 找出列表中独一无二的元素。

for language in set(favorite.values()):print(language)
"""
Python
C++
"""
  • 遍历所有键值对
# items()用于返回字典中所有的键值对(key-value)
for k, v in favorite.items():print("key:", k, " value:", v)

4.3 字典嵌套

  • 在列表中存储字典
aliens = []
for alien_number in range(30):new_alien ={'color': 'green', 'points': 5}aliens.append(new_alien)
  • 在字典中存储列表
pizza = {'crust': 'thick','toppings': ['mushrooms', 'extra cheese'],
}
  • 在字典中存储字典
users = {'aeinstein':{'first': 'albert','last': 'einstein','location': 'princeton',},'mcurie':{'first': 'marie','last': 'curie','location': 'paris',},
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

如何用【钉钉文档】发公告

功能亮点 ✔️借助钉钉文档强大的编辑能力,可以让编写出的公告更加精美。 ✔️将钉钉文档一键导入公告,可以完整保留已经编辑好的格式,无需再手动调整。 ✔️使用钉钉文档,可以将所有公告内容有序沉淀和保存。 💡 使…

工位管理自动化:Spring Boot企业级工具

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理企业级工位管理系统的相关信息成为必然。开…

相亲小程序(源码+文档+部署+讲解)

最近我在挖掘一些优秀的开源项目时,无意间发现了一个相当给力的系统——相亲小程序管理系统。这个系统不仅功能实用,而且代码结构清晰,易于二次开发。作为一名技术爱好者,我觉得有必要把这个好东西推荐给我的读者们。接下来&#…

Filter and Search 筛选和搜索

Goto Data Grid 数据网格 Filter and Search 筛选和搜索 Filter Drop-down Menus (Excel-style) 筛选器下拉菜单(Excel 样式) 要调用列的筛选器下拉菜单,请单击列标题中的筛选器图标。在 “Values” 选项卡中,用户可以从 Data …

java项目报错:错误提示Could not initialize class com.jacob.com.ComThread

java项目报错:错误提示Could not initialize class com.jacob.com.ComThread 下载地址: 通过网盘分享的文件:jacob-1.19 链接: https://pan.baidu.com/s/1ouudh7A2-Y2kqPh_q-WYiA?pwdqhr3 提取码: qhr3 –来自百度网盘超级会员v7的分享 安…

Linux服务管理-多路径multipath

多路径Multipath 概述 多路径(Multipath)技术,特别是在存储系统中,是一种提高可靠性和性能的重要手段。多路径技术允许服务器通过多条物理路径连接到存储设备。这些路径可以是包含独立电缆、交换机和控制器的物理SAN连接。 多路…

省级绿色金融指数数据(1990-2021年)

绿色信贷是指银行在信贷业务中采纳环境标准,对污染企业的资金进行限制,同时对环保企业给予扶持。这种模式旨在促使贷款企业承担环境责任,实现节能减排,优化产业结构,以及改变经济增长方式。 1990-2021年省级绿色金融指…

【go从零单排】通道select、通道timeout、Non-Blocking Channel Operations非阻塞通道操作

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 select 语句是 Go 的一种控制结构,用于等待多个通道操作。它类似于 s…

Unity资源打包Addressable AA包

从零到一 很多资料都是通过一步步设置讲解的,有时很想先快速实现,再了解细节。 下面就是远程加载Cube.prefab然后实例化简单的代码。 代码中可以不需要远程的网址,不需要资源下载的位置,不需要判断是否已经下载到本地。 那是如…

Microsoft Visual C++ 安装失败 0x80070666

“0x80070666”错误通常在尝试安装 Microsoft Visual C、Lumberyard 或类似的分发包时发生。该错误信息通常在安装过程的开始阶段就被报告。此问题并非特定于某一Windows版本,已经确认在Windows 7、Windows 8.1和Windows 10中均会发生。 0x80070666 错误在安装 Micr…

netcat工具安装和使用

netcat是一个功能强大的网络实用工具,可以从命令⾏跨⽹络读取和写⼊数据。 netcat是为Nmap项⽬编写的,是⽬前分散的Netcat版本系列的经典。 它旨在成为可靠的后端⼯具,可⽴即为其他应⽤程序和⽤户提供⽹络连接。 一,下载安装 1&a…

带隙基准学习笔记一

1.带隙基准原理: 带隙基准电压源采用BJT,利用其基极-发射极电压的负温度系数和两个不同的BJT基极-发射极电压之差的正温度系数用于获得温度系数为零的基准电压源,因为最终计算的输出电压接近硅晶体的一个带隙电压,所以被称为带隙…

使用 Node.js 了解 MVC 模式

模型-视图-控制器 (MVC) 模式是 Web 开发中最流行的架构模式之一。通过将应用程序划分为三个相互关联的组件(模型、视图和控制器),MVC 促进了有组织、可维护和可扩展的代码。Node.js 具有异步处理和庞大的生态系统&…

35.3K+ Star!PhotoPrism:一款基于AI的开源照片管理工具

PhotoPrism 简介 PhotoPrism[1] 是一个为去中心化网络设计的AI照片应用,它利用最新技术自动标记和查找图片,实现自动图像分类与本地化部署,你可以在家中、私有服务器或云端运行它。 项目特点 主要特点 浏览所有照片和视频,无需担心RAW转换、重复项或视频格式。 使用强大的…

VMware虚拟机安装Win7专业版保姆级教程(附镜像包)

一、Win7镜像下载: 链接:https://pan.baidu.com/s/1tvN9hXCVngUzpIC6b2OGrA 提取码:a66H 此镜像为Win7专业版(收藏级镜像 已自用几年),官方纯净系统没有附带任何其他第三方软件。 二、配置虚拟机 1.创建新的虚拟机。 这里我们以最新的VMware…

中国前首富胡志标受邀出席创客匠人“全球创始人IP领袖高峰论坛”

创客匠人正式官宣!原爱多VCD创始人、中国前首富胡志标受邀出席创客匠人5000人“全球创始人IP领袖高峰论坛”,将与我们携手共赴这场商业巅峰盛宴。 由创客匠人打造的“全球创始人IP领袖高峰论坛”将在2024年12月26日-28日在厦门市国际博览会议中心如期举…

TCP可靠连接的建立和释放,TCP报文段的格式,UDP简单介绍

TCP连接的建立(三次握手) 建立连接使用的三报文 SYN 报文仅用于 TCP 三次握手中的第一个和第二个报文(SYN 和 SYN-ACK),用于初始化连接的序列号。数据传输阶段不再使用 SYN 标志。 SYN 报文通常只携带连接请求信息&a…

flink 同步oracle11g数据表到pg库

1. 关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld systemctl status firewalldvi /etc/selinux/config 修改为disabled2.安装java8 yum list java-1.8* yum install java-1.8.0-openjdk* -yjava -version3.下载和部署postgresql 看需求安装pg库…

012_SSH_Mysql网上订餐系统(论文+程序)_lwplus87

摘 要 本文讲述了基于JSP技术构建的网上订餐系统的设计与实现。所谓的网上订餐系统是通过网站推广互联企业的商品和技术服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订单处理功能。 从长期的战略目标来说,网站不仅是…

ASR 点亮闪光灯和后摄对焦马达

ASR翱捷科技 ASR kernel 5.10 android14 ASR EVB平台 ASR 原理图 闪光灯是gpio控制 1.驱动 路径:asr\kernel\linux\drivers\media\platform\asr-mars11\flash\leds-gpio-flash.c 驱动加载后生成设备节点/sys/class/leds/torch 和/sys/class/leds/flash。 Makefile Kconfig…