python 之字典的相关知识
文章目录
- 字典的基本特点:
- 1. 定义
- 2. 键唯一性
- 3. 可变性
- 4. 键的类型
- 基本操作:
- 字典的创建
- 1. 花括号 `{}`
- 2. dict() 构造函数
- 3. 键值对的 dict() 构造函数
- 使用 `zip()` 函数创建字典:
- 注意事项
- 访问字典中的值
- 修改和添加键值对
- 删除键值对
- 字典方法:
- 总结:
- 1. `clear()`
- 2. `copy()`
- 3. `get()`
- 4. `items()`
- 5. `keys()`
- 6. `values()`
- 7. `pop()`
- 8. `popitem()`
- 9. `update()`

字典(Dictionary)是 Python 中的一种数据结构,它以键-值对的形式存储数据。字典是无序的,通过键来访问和存储数据,而不是通过索引。
字典的基本特点:
1. 定义
字典使用花括号 {} 定义,每个键值对之间使用逗号 , 分隔。键和值之间使用冒号 : 分隔。
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
2. 键唯一性
- 字典中的键是唯一的,不允许重复。如果出现重复键,后面的键值对会覆盖前面的。
my_dict = {'key1': 'value1', 'key1': 'new_value1'}
print(my_dict) # 输出: {'key1': 'new_value1'}
3. 可变性
- 字典是可变的,可以随时添加、删除或修改键值对。
4. 键的类型
- 字典的键可以是不可变类型(如整数、字符串、元组等),但不能是可变类型(如列表、集合等)。
基本操作:
字典的创建
在 Python 中,有多种方法可以创建字典。以下是常用的创建字典的方式:
1. 花括号 {}
使用花括号 {} 来创建字典,键值对之间用冒号 : 分隔,每个键值对之间用逗号 , 分隔。
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
2. dict() 构造函数
使用 dict() 构造函数来创建字典,可以从包含键值对的序列(如元组的列表)或者其他字典创建新字典。
- 从包含键值对的序列创建:
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
3. 键值对的 dict() 构造函数
使用 dict() 构造函数并以关键字参数形式传递键值对。
my_dict = dict(name='Alice', age=30, city='New York')
对的,zip() 函数也可以用于创建字典。zip() 函数能够将多个可迭代对象打包成元组序列,并将其合并为一个字典。一般来说,zip() 会将第一个可迭代对象的元素作为键,第二个可迭代对象的元素作为值。
使用 zip() 函数创建字典:
keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']my_dict = dict(zip(keys, values))
print(my_dict) # 输出: {'name': 'Alice', 'age': 30, 'city': 'New York'}
这里,zip() 函数将 keys 和 values 打包成元组序列,然后 dict() 函数将这些元组转换为字典。这种方法特别适合将两个列表的元素对应起来创建字典。
注意事项
- 键必须是不可变类型(如整数、字符串、元组),但值可以是任意类型。
- 如果使用相同的键创建字典,后面的键值对会覆盖之前的键值对。
以上是创建字典的几种常见方法,根据实际需求和数据类型,选择最适合的方法来创建字典。
访问字典中的值
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}print(my_dict['name']) # 输出: 'Alice'
print(my_dict.get('age')) # 输出: 30
修改和添加键值对
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}# 修改值
my_dict['age'] = 31# 添加新键值对
my_dict['gender'] = 'Female'
删除键值对
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}del my_dict['age'] # 删除 'age' 键值对my_dict.pop('city') # 删除 'city' 键值对
字典方法:
keys():返回字典中所有键的视图。values():返回字典中所有值的视图。items():返回字典中所有键值对的元组视图。update():将一个字典的键值对更新到另一个字典。clear():清空字典中的所有元素。
总结:
字典是一种非常有用的数据结构,特别适合用于键值对的存储和快速检索。了解字典的特点、基本操作以及常用方法可以让你更好地利用它来组织和管理数据。
当操作 Python 字典时,可以使用多种方法来进行检索、添加、删除或修改键值对。下面是一些常用的字典方法以及它们的作用:
1. clear()
- 作用:清空字典中的所有元素。
示例:
my_dict = {'name': 'Alice', 'age': 30}
my_dict.clear()
print(my_dict) # 输出: {}
2. copy()
- 作用:返回字典的浅拷贝。
示例:
my_dict = {'name': 'Alice', 'age': 30}
new_dict = my_dict.copy()
3. get()
- 作用:获取指定键的值,如果键不存在则返回默认值。
示例:
my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.get('age')) # 输出: 30
print(my_dict.get('gender', 'Not specified')) # 输出: 'Not specified'
4. items()
- 作用:返回一个包含所有键值对元组的视图。
示例:
my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.items()) # 输出: dict_items([('name', 'Alice'), ('age', 30)])
5. keys()
- 作用:返回包含字典所有键的视图。
示例:
my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.keys()) # 输出: dict_keys(['name', 'age'])
6. values()
- 作用:返回包含字典所有值的视图。
示例:
my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.values()) # 输出: dict_values(['Alice', 30])
7. pop()
- 作用:删除指定键并返回其对应的值,如果键不存在则返回默认值。
示例:
my_dict = {'name': 'Alice', 'age': 30}
value = my_dict.pop('age')
print(value) # 输出: 30
8. popitem()
- 作用:随机删除并返回一个键值对元组(通常是末尾键值对)。
示例:
my_dict = {'name': 'Alice', 'age': 30}
item = my_dict.popitem()
print(item) # 输出: ('age', 30)
9. update()
- 作用:将一个字典的键值对更新到另一个字典。
示例:
dict1 = {'name': 'Alice', 'age': 30}
dict2 = {'gender': 'Female'}dict1.update(dict2)
print(dict1) # 输出: {'name': 'Alice', 'age': 30, 'gender': 'Female'}
这些方法能够让你对字典进行各种操作,包括获取键、值、键值对,删除元素,清空字典,以及合并字典等。
相关文章:
python 之字典的相关知识
文章目录 字典的基本特点:1. 定义2. 键唯一性3. 可变性4. 键的类型 基本操作:字典的创建1. 花括号 {}2. dict() 构造函数3. 键值对的 dict() 构造函数使用 zip() 函数创建字典:注意事项访问字典中的值修改和添加键值对删除键值对 字典方法&am…...
上下游系统对接的沟通与协作
在工作中,有时会有对接其他部门系统的需求,这种需求虽然不复杂,但是跨部门协作,往往会出现各种难以沟通、协调的情况。 踩的坑多了,就记录下来。 注意:在本文中,A系统调用B系统,A依…...
pytest 的使用===谨记
发现用例的规则 a) 文件test_.py开头和_test.py结尾 b) Test开头的类中test开头的方法(测试类不能带有__init__方法) c) 模块中test开头的函数(可以不在class中) 注意点: pytest是以方法为单位发现用例的,你…...
Qt 4.8.6 的下载与安装
Qt 4.8.6 的下载与安装 Qt 4.8.6 的下载与安装下载并解压 MinGW 4.8.2Qt4.8.6 库的安装Qt Creator 3.3.0 的安装配置 Qt Creator测试 官方博客:https://www.yafeilinux.com/ Qt开源社区:https://www.qter.org/ Qt 4.8.6 的下载与安装 学习《Qt Creato…...
图形推理 | 判断推理
文章目录 一、位置规律二、样式规律三、属性规律四、数量规律 一、位置规律 平移 方向:直线(上下、左右、斜对角线)、绕圈(顺逆时针)常见步数:恒定、递增(等差) 旋转 方向ÿ…...
npm的使用
package.json 快速生成package.json npm init -y “version”: “~1.1.0” 格式为:「主版本号. 次版本号. 修订号」。 修改主版本号是做了大的功能性的改动 修改次版本号是新增了新功能 修改修订号就是修复了一些bug dependencies "dependencies": {&…...
Web服务器实战
网站需求 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个网站目录分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料 www…...
2021年电工杯数学建模B题光伏建筑一体化板块指数发展趋势分析及预测求解全过程论文及程序
2021年电工杯数学建模 B题 光伏建筑一体化板块指数发展趋势分析及预测 原题再现: 国家《第十四个五年规划和 2035 年远景目标纲要》中提出,将 2030 年实现“碳达峰”与 2060 年实现“碳中和”作为我国应对全球气候变暖的一个重要远景目标。光伏建筑一体…...
pandas教程:Essential Functionality 索引 过滤 映射 排序
文章目录 5.2 Essential Functionality(主要功能)1 Reindexing(重新索引)2 Dropping Entries from an Axis (按轴删除记录)3 Indexing, Selection, and Filtering(索引,选择,过滤)Selection with loc and i…...
pyspark连接mysql数据库报错
使用pyspark连接mysql数据库代码如下 spark_conf SparkConf().setAppName("MyApp").setMaster("local")spark SparkSession.builder.config(confspark_conf).getOrCreate()url "jdbc:mysql://localhost:3306/test?useUnicodetrue&characterE…...
HK WEB3 MONTH Polkadot Hong Kong 火热报名中!
HK Web3 Month 11月除了香港金融科技周外,HK Web3 Month又是一大盛事,从10月29日开始开幕直到11月18日结束。此次将齐聚世界各地的Web3产业从业者、开发者、社群成员和学生来参与本次盛会。除外,超过75位产业知名的讲者与超过50场工作坊将为…...
“第六十三天”
这两天怎么做的这么别扭,为什么我的vs 的strlen函数包括终止字符了; 哦哦,明白了,fgets函数读取在未达到指定字长,或者遇见空白符之前,会读取前面的所有字符,所以会读取换行符,而get…...
常用排序算法实现
时间复杂度 O ( 1 ) O(1) O(1) void func1(int n){int count 100;count; } void func2(int n){int count 100;for(int i 0; i < count;i){} } int func3(int n){return n; }O ( n ) O(n) O(n) void func1(int n){int count 100;for(int i 0; i < n;i){count;} …...
使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别
目标网站:https://www.txrjy.com/forum.php 一、进入网页,右键“检查” 二、输入用户名和密码,点击“登录”,点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项,找到URL 四、相关代码: …...
Redis 的缓存击穿,穿透,雪崩及其解决方案
1 缓存穿透 什么是缓存穿透? 大量请求的 key 是不合理的,根本不存在于缓存中,也不存在于数据库中 。导致这些请求直接到了数据库上,根本没有经过缓存这一层,对数据库造成了巨大的压力,可能直接就被这么多…...
JWT原理分析——JWT
了解为什么会有JWT的出现? 首先不得不提到一个知识叫做跨域身份验证,JWT的出现就是为了更好的解决这个问题,但是在没有JWT的时候,我们一般怎么做呢?一般使用Cookie和Session,流程大体如下所示:…...
Jprofiler/ VisualVM 定位内存溢出OOM
下载,接受协议下一步下一步,最后选择与IDEA集成OK ej-technologies - Java APM, Java Profiler, Java Installer Builder IDEA配置参数: # F:\study\spring-test\dump 为dump文件保存路径-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPathF:\study\spring-test\dumppackage …...
NOIP2023模拟13联测34 competition
题目大意 有一场题目数量为 m m m的比赛,有一个团队想要来参加。 这个团队有 n n n个选手,编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li∼ri道题,每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...
Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记
前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录,包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合࿰…...
用 QT 开发软件会吃官司吗?
之前我写过我们现在使用 QT 开发跨平台软件,有朋友留言,QT 虽好,当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前,我们先把使用盗版 QT 排除在外,只讨论在合法且遵从版权协议的前提下,能否使用…...
终极指南:深入理解Wing语言Preflight和Inflight执行阶段
终极指南:深入理解Wing语言Preflight和Inflight执行阶段 【免费下载链接】wing A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡ 项目地址: https://gitcode.com/gh_mi…...
养鸡场规划:如何计算所需农场数量
在养鸡业中,如何高效地管理和规划农场的使用是一个关键问题。最近,我遇到了一位养鸡场主的需求,他需要根据每天的鸡出栏数据来计算所需农场的数量。今天,我们就来探讨如何通过编程解决这个问题。 问题背景 假设你有一个包含以下数…...
KingbaseES V8R6备份还原踩坑实录:sys_dump、sys_restore和ksql到底怎么选?
KingbaseES V8R6备份还原实战指南:工具选型与典型问题解析 第一次接触KingbaseES V8R6的备份还原工作时,面对sys_dump、sys_restore和ksql这三个工具,我像大多数新手一样陷入了选择困难。记得那次紧急数据迁移任务,当我信心满满地…...
35岁程序员收藏!转行大模型,抢占高薪风口,从入门到高薪 Offer 全攻略
35岁程序员收藏!转行大模型,抢占高薪风口,从入门到高薪 Offer 全攻略 35岁程序员面临职业瓶颈,大模型技术提供了转行出路。文章分析了为何转行大模型是明智之选,包括行业风口、需求缺口大、原有技术可复用、职业生命周…...
[AI/向量数据库/GUI] Attu : Milvus 的图形化与一体化管理工具
起因是我想在搞一些操作windows进程的事情时,老是需要右键以管理员身份运行,感觉很麻烦。就研究了一下怎么提权,顺手瞄了一眼Windows下用户态权限分配,然后也是感谢《深入解析Windows操作系统》这本书给我偷令牌的灵感吧ÿ…...
C语言整数字节拆解:联合体与移位操作详解
1. 理解题目:整数字节拆解的核心需求 在嵌入式开发和底层系统编程中,处理多字节数据是家常便饭。就拿这个面试题来说,我们需要从32位无符号整数0x12345678中提取出它的四个独立字节。这看似简单的需求背后,其实涉及到计算机系统中…...
如何利用爬虫技术快速精准地抓取目标数据?
1. 爬虫策略:从"无脑抓"到"精准狙击" 我刚入行时犯过一个典型错误——用单线程脚本无差别抓取整站数据,结果不仅触发反爬机制被封IP,还浪费三天时间清洗90%的无用数据。现在回头看,合理的爬虫策略就像狙击手…...
如何永久保存微信聊天记录:WeChatMsg本地化数据管理完全指南
如何永久保存微信聊天记录:WeChatMsg本地化数据管理完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...
YOLO26涨点改进| TPAMI 2026 |独家创新首发、Conv改进篇| 引入LPM 局部先验特征增强模块,更加聚焦于目标区域并抑制背景干扰,助力目标检测、图像分割、图像恢复、图像增强有效涨点
一、本文介绍 🔥本文给大家介绍使用 LPM 局部先验特征增强模块 改进YOLO26网络模型,通过构建重要性图对特征提取过程进行引导,使模型能够更加聚焦于目标区域并抑制背景干扰,从而提升特征表达质量和目标区分能力。其优势体现在能够有效增强关键区域信息、提升小目标和复杂…...
【软件部署】在docker环境部署vsftpd
说明 vsftp官网https://security.appspot.com/vsftpd.html 配置文件说明https://security.appspot.com/vsftpd/vsftpd_conf.html 注意 因优化更新,文件内容可能变化,具体参考 https://github.com/zhuyifeiRuichuang/work-script/tree/main/vsftp 适用场景…...
