当前位置: 首页 > news >正文

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() 函数将 keysvalues 打包成元组序列,然后 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…...

图形推理 | 判断推理

文章目录 一、位置规律二、样式规律三、属性规律四、数量规律 一、位置规律 平移 方向:直线(上下、左右、斜对角线)、绕圈(顺逆时针)常见步数:恒定、递增(等差) 旋转 方向&#xff…...

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;} …...

使用表单登录方法模拟登录通信人家园,要求发送登录请求后打印出来的用户名下的用户组类别

目标网站&#xff1a;https://www.txrjy.com/forum.php 一、进入网页&#xff0c;右键“检查” 二、输入用户名和密码&#xff0c;点击“登录”&#xff0c;点击“Network”,上划加载项找到蓝色框中的内容 三、点击第一个加载项&#xff0c;找到URL 四、相关代码&#xff1a; …...

Redis 的缓存击穿,穿透,雪崩及其解决方案

1 缓存穿透 什么是缓存穿透&#xff1f; 大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&#xff0c;可能直接就被这么多…...

JWT原理分析——JWT

了解为什么会有JWT的出现&#xff1f; 首先不得不提到一个知识叫做跨域身份验证&#xff0c;JWT的出现就是为了更好的解决这个问题&#xff0c;但是在没有JWT的时候&#xff0c;我们一般怎么做呢&#xff1f;一般使用Cookie和Session&#xff0c;流程大体如下所示&#xff1a;…...

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的比赛&#xff0c;有一个团队想要来参加。 这个团队有 n n n个选手&#xff0c;编号为 i i i的选手能做第 l i ∼ r i l_i \sim r_i li​∼ri​道题&#xff0c;每题他都有 100 % 100\% 100%的概率做出来。 这个团队会随机派出一只队伍来参…...

Intel oneAPI笔记(2)--jupyter官方文档(oneAPI_Intro)学习笔记

前言 本文是对jupyterlab中oneAPI_Essentials/01_oneAPI_Intro文档的学习记录&#xff0c;包含对SYCL、DPC extends SYCL、oneAPI Programming models等介绍和SYCL代码的初步演示等内容 oneAPI编程模型综述 oneAPI编程模型提供了一个全面而统一的开发人员工具组合&#xff0…...

用 QT 开发软件会吃官司吗?

之前我写过我们现在使用 QT 开发跨平台软件&#xff0c;有朋友留言&#xff0c;QT 虽好&#xff0c;当心收到律师函。今天就来聊聊这个话题。 在开始这个话题之前&#xff0c;我们先把使用盗版 QT 排除在外&#xff0c;只讨论在合法且遵从版权协议的前提下&#xff0c;能否使用…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...