当前位置: 首页 > 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;能否使用…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...