【Python入门第十五天】Python字典

news/2024/4/24 4:52:21/文章来源:https://blog.csdn.net/ooowwq/article/details/129027181

字典(Dictionary)

字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。

实例

创建并打印字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
print(thisdict)

运行实例

访问项目

您可以通过在方括号内引用其键名来访问字典的项目:

实例

获取 “model” 键的值:

x = thisdict["model"]

运行实例

还有一个名为 get() 的方法会给你相同的结果:

实例

获取 “model” 键的值:

x = thisdict.get("model")

运行实例

更改值

您可以通过引用其键名来更改特定项的值:

实例

把 “year” 改为 2019:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict["year"] = 2019

运行实例

遍历字典

您可以使用 for 循环遍历字典。

循环遍历字典时,返回值是字典的键,但也有返回值的方法。

实例

逐个打印字典中的所有键名:

for x in thisdict:print(x)

运行实例

实例

逐个打印字典中的所有值:

for x in thisdict:print(thisdict[x])

运行实例

实例

还可以使用 values() 函数返回字典的值:

for x in thisdict.values():print(x)

运行实例

实例

通过使用 items() 函数遍历键和值:

for x, y in thisdict.items():print(x, y)

运行实例

检查键是否存在

要确定字典中是否存在指定的键,请使用 in 关键字:

实例

检查字典中是否存在 “model”:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
if "model" in thisdict:print("Yes, 'model' is one of the keys in the thisdict dictionary")

运行实例

字典长度

要确定字典有多少项目(键值对),请使用 len() 方法。

实例

打印字典中的项目数:

print(len(thisdict))

运行实例

添加项目

通过使用新的索引键并为其赋值,可以将项目添加到字典中:

实例

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict["color"] = "red"
print(thisdict)

运行实例

删除项目

有几种方法可以从字典中删除项目:

实例

pop() 方法删除具有指定键名的项:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.pop("model")
print(thisdict)

运行实例

实例

popitem() 方法删除最后插入的项目(在 3.7 之前的版本中,删除随机项目):

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.popitem()
print(thisdict)

运行实例

实例

del 关键字删除具有指定键名的项目:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
del thisdict["model"]
print(thisdict)

运行实例

实例

del 关键字也可以完全删除字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
del thisdictprint(thisdict) #this 会导致错误,因为 "thisdict" 不再存在。

运行实例

实例

clear() 关键字清空字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
thisdict.clear()
print(thisdict)

运行实例

复制字典

您不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在 dict2 中进行。

有一些方法可以进行复制,一种方法是使用内建的字典方法 copy()。

实例

使用 copy() 方法来复制字典:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
mydict = thisdict.copy()
print(mydict)

运行实例

制作副本的另一种方法是使用内建方法 dict()。

实例

使用 dict() 方法创建字典的副本:

thisdict =	{"brand": "Porsche","model": "911","year": 1963
}
mydict = dict(thisdict)
print(mydict)

运行实例

嵌套字典

词典也可以包含许多词典,这被称为嵌套词典。

实例

创建包含三个字典的字典:

myfamily = {"child1" : {"name" : "Phoebe Adele","year" : 2002},"child2" : {"name" : "Jennifer Katharine","year" : 1996},"child3" : {"name" : "Rory John","year" : 1999}
}

运行实例

{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

或者,如果您想嵌套三个已经作为字典存在的字典:

实例

创建三个字典,然后创建一个包含其他三个字典的字典:

child1 = {"name" : "Phoebe Adele","year" : 2002
}
child2 = {"name" : "Jennifer Katharine","year" : 1996
}
child3 = {"name" : "Rory John","year" : 1999
}myfamily = {"child1" : child1,"child2" : child2,"child3" : child3
}

运行实例

{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

dict() 构造函数

也可以使用 dict() 构造函数创建新的字典:

实例

thisdict = dict(brand="Porsche", model="911", year=1963)
# 请注意,关键字不是字符串字面量
# 请注意,使用了等号而不是冒号来赋值
print(thisdict)

运行实例

字典方法

Python 提供一组可以在字典上使用的内建方法。

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

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

相关文章

科技新浪推前浪 ChatGPT将元宇宙“拍在沙滩上”?

近期ChatGPT的热度显然已经盖过了元宇宙,回想去年元宇宙大热之际,很多企业纷纷跟进,甚至还有不少公司选择更名以表达All In元宇宙的决心。而如今ChatGPT抢占风头,成为新宠,元宇宙似乎被“抛弃”了,难道元宇…

【React npm】从零搭建react脚手架,发布组件库到npm,并实现按需加载(二)

发布react组件库前情回顾介绍搭建脚手架配置babelrc配置jsconfig写入组件demo修改主入口文件配置生产环境webpack配置package.json发布实现按需加载前情回顾 前面写过一篇,发布单个组件到npm的: https://blog.csdn.net/tuzi007a/article/details/12911…

【HTML】HTML 表单 ⑤ ( form 表单域 )

文章目录一、form 表单域1、form 表单域作用2、form 表单域语法3、form 表单域 Get 请求4、form 表单域 Post 请求一、form 表单域 1、form 表单域作用 从 input 表单 , textarea 文本域 , select 下拉菜单 中收集了用户信息 , 需要通过 form 表单域 发送给 服务器端 ; 2、fo…

第十一章 - 模糊匹配(like)、正则匹配(REGEXP)、文本处理函数、时间处理函数

第十一章 - 模糊匹配(like)、正则匹配(REGEXP)、文本处理函数、时间处理函数模糊匹配和正则匹配like%通配符_通配符REGEXP 正则匹配文本拼接concat()substring()substring_index()一些文本处理函数时间处理…

【计算机组成原理】求寻址范围(按字/按字节)

今天一道计算机组成原理的复习题一直没搞懂怎么做的,网上讲解求寻址范围题型的资料和视频也很少,花了半个晚上才搞懂。 首先,理解存储体,存储单元,存储字,存储元。(文章末尾详细解释了) 以下是…

2022年休闲游戏市场总结

在预测 2023 年之前,我们先回顾一下 2022 年。从上一年发生的事件中往往能看到未来趋势的影子,所以 2022 年的总结至关重要。一、2022年总结回顾1、流行游戏类型回顾 2022 年,三种超休闲游戏表现最为突出:跑酷游戏:跑酷…

你知道IT运维的本质是什么吗?

大家好,我是技福的小咖老师。 之前看到个文章,说运维的本质是“可视化”,甚至还有人说是DevOps。不可否认,“可视化”是运维过程中非常重要的一个环节;DevOps则是开发运维一体化非常重要的工具。 究其根本&#xff0…

leetcode重点题目分类别记录(一)数据结构类

算法题分类别记录数组排序归并排序合并两有序数组归并排序快速排序荷兰旗问题快速排序堆排序基数排序滑动窗口/双指针N数之和四数相加链表环形链表重排链表LRU缓存栈与队列栈实现队列/队列实现栈最小栈/最小队列单调队列单调栈哈希表字符串字符串处理字符串匹配KMP子串二叉树二…

Dart的安装及环境变量配置

本文介绍dart的安装步骤及环境变量配置,以及如何在vscode中进行开发环境配置。一、dart的安装访问dart官网https://dart.cn/,点击网站右上角的获取DART SDK进行下载页面。如下图,选择下载SDK的zip压缩文件。根据自己的操作系统情况选择合适版…

吉卜力风格水彩画怎么画?

著名的水彩艺术家陈坚曾说:“水彩是用水润调和形成的饱和度极高的艺术画面,在纸上晕染的画面面积、强度等具有许多随意性,天空的颜色乌云密布,都是很随意的,难以模仿。” 是的,水彩画的妙处就在于不确定的…

apk中代码执行adb指令实现

背景:想要在android apk中直接使用adb指令,从而不需要把手机通过数据线方式连接到电脑,在电脑端执行adb指令。 一、权限相关 想要在apk代码中执行adb命令,涉及到执行权限。 首先手机需要有root权限。其次就算手机已经root了&…

(18)目标检测算法之数据集标签格式转换:json2txt、xml2txt

目标检测算法之数据集标签格式转换:json2txt、xml2txt 目标检测最常见的模型:YOLO,常见的几种标注方式:矩形框、旋转矩形框、实例分割中的多边形标注等类型,根据其标注标签,目标检测主要有以下两种转换方式…

Word中批量调整图片大小

当一个文档中图片较多,又需要调整图片大小时,这时可以通过“宏”执行代码来批量调整。打开一个Word文档。“AltF8"键打开宏。设置“宏名”,并单击“创建”。创建完宏后,将进入Visual Basic 编辑器界面。在代码编辑区全选&…

【面试题】TCP如何保证传输可靠性?TCP流量控制实现、拥塞控制、ARQ协议、停止等待ARQ、连续ARQ

文章目录1. TCP 如何保证传输的可靠性?2.TCP 如何实现流量控制?3.TCP 的拥塞控制是怎么实现的?3.ARQ 协议了解吗?4.停止等待 ARQ 协议5.连续 ARQ 协议1. TCP 如何保证传输的可靠性? 基于数据块传输 :应用数据被分割成…

前端编译、JIT编译、AOT编译

一、前端编译:java设计之初就是强调跨平台,通过javac将源文件编译成于平台无关的class文件, 它定义了执行 Java 程序所需的所有信息(许多Java"语法糖",是在这个阶段完成的,不依赖虚拟机&#xff…

01-MySQL基础-简介安装navicat使用SQL(DDL、DML、(DCL)、DML)

文章目录MySQL基础1,数据库相关概念1.1 数据库1.2 数据库管理系统1.3 常见的数据库管理系统1.4 SQL2,MySQL2.1~2.4 mysql安装2.5 MySQL数据模型3,SQL概述3.1 SQL简介3.2 通用语法3.3 SQL分类4,DDL:操作数据库4.1 查询4.2 创建数据…

Java笔记026-集合/数组、Collection接口、ArrayList、Vector、LinkedList

集合集合的理解和好处保存多个数据使用的是数组,分析数组的弊端数组1、长度开始必须指定,而且一旦指定,不能更改2、保存的必须为同一类型的元素3、使用数组进行增加/删除元素的示意代码-比较麻烦Person数组扩容示意代码Person[] pers new Pe…

手把手搭建springboot项目05-springboot整合Redis及其业务场景

目录前言一、食用步骤1.1 安装步骤1.1.1 客户端安装1.2 添加依赖1.3 修改配置1.4 项目使用1.5 序列化二、应用场景2.1 缓存2.2.分布式锁2.2.1 redis实现2.2.2 使用Redisson 作为分布式锁2.3 全局ID、计数器、限流2.4 购物车2.5 消息队列 (List)2.6 点赞、签到、打卡 (Set)2.7 筛…

Liunx服务器安装SVN

一、下载svn安装包链接:https://pan.baidu.com/s/1gkS0tef2kQP6nvXOS64hUw 提取码:cyuw二、SVN安装部署通过sftp将文件拉取到目的主机路径:/usr/package 跳转文件路径: cd /usr/package 执行解压命令:tar -zxvf subversion-1.14.2.tar.gz 执行…

idea启动报错If you already have a 64-bit JDK installed, define a JAVA HOME variable

IDEA启动报错,如下图所示: 解决方法: 1.根据以下路径找到文件idea64.exe.vmoptions ,路径如下图所示: C:\Users\Thinkpad\AppData\Roaming\JetBrains\IntelliJIdea2020.3\idea64.exe.vmoptions 其中Thinkpad是电脑的…