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

Python3 字典

前言

本文主要介绍Python中的字典(dict),主要内容包括:字典简介、字典特性、字典的基本操作。

文章目录

  • 前言
  • 一、字典简介
  • 二、字典特性
    • 1、键值对
    • 2、无序性?
    • 3、可变性
    • 4、键的唯一性
    • 5、值的类型不限
  • 三、字典的基本操作
    • 1、创建
    • 2、访问
    • 3、增加、修改
    • 4、删除
    • 5、合并
    • 6、遍历
    • 7、查询字典的长度

一、字典简介

字典每个基本元素都包括两个部分:键(key) 和 键对应的值(value),字典的语法定义为:{键 : 值 , … },每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(type(my_dict))

输出结果:

<class 'dict'>

二、字典特性

1、键值对

字典由键和值组成,键和值之间用冒号隔开,每个键值对之间用逗号分隔,如:

my_dict = {'a':1, 'b':2, 'c':3}
print(type(my_dict))
print(my_dict)

输出结果:

<class 'dict'>
{'a': 1, 'b': 2, 'c': 3}

2、无序性?

在python3.7版本之前,字典中的键值对是无序的。Python 3.7及以上版本中,字典实现中引入了一个新特性,即维护一个容纳插入顺序的子表。这种顺序子表允许字典在迭代或者输出时按照插入顺序返回其条目,而不是哈希表中的任意顺序(python3.7版本前),它的输出顺序通常是稳定的,但是我们仍然不可以认为字典是有序的,这种有序的特性没有得到明确的规定。(如果你的版本是python3.7以上,有例子说明是字典是无序的,请写在评论区,感谢!)

3、可变性

字典是可变的,可以对字典中的键值对进行增加、删除、修改等操作,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}my_dict['d'] = 4
del my_dict['a']
my_dict['b'] = 9
print(my_dict)

输出结果:

{'b': 9, 'c': 3, 'd': 4}

4、键的唯一性

字典中的键必须是唯一的,所以可以用数字、字符串或元组充当,如果一个字典中有相同的键,后面的键将会覆盖前面的键对值,如:

my_dict = {'a': 1, 'b': 2, 'a': 3}
print(my_dict)

输出结果:

{'a': 3, 'b': 2}

5、值的类型不限

字典中的值可以是任何数据类型,如:

my_dict = {'a': (1,2), 'b': [3,4], 'c': {5,6},'d':'hello'}
print(type(my_dict))
print(my_dict)

输出结果:

<class 'dict'>
{'a': (1, 2), 'b': [3, 4], 'c': {5, 6}, 'd': 'hello'}

三、字典的基本操作

字典的基本操作有:创建、访问、增加、修改、删除、合并、遍历、查询字典的长度等

1、创建

创建字典有两种方式:1)使用大括号 { } 创建空字典、2)使用内建函数 dict() 创建字典,如:

my_dict1 = {'a': 1, 'b': 2, 'c': 3}
my_dict2 = dict({'d': 4, 'e': 5, 'f': 6})
print(type(my_dict1))
print(type(my_dict2))

输出结果:

<class 'dict'>
<class 'dict'>

2、访问

使用键来访问字典中的值,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict['b'])

输出结果:

2

3、增加、修改

使用赋值语对字典中的键值对添加或修改,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
my_dict['d'] = 4
my_dict['a'] = 9
print(my_dict)

输出结果:

{'a': 9, 'b': 2, 'c': 3, 'd': 4}

4、删除

使用 del 关键字和给定键来删除字典中的元素,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
del my_dict['a']
print(my_dict)

输出结果:

{'b': 2, 'c': 3}

5、合并

使用update()方法将一个字典合并到另一个字典中,如:

my_dict1 = {'a': 1, 'b': 2, 'c': 3}
my_dict2 = {'d': 4, 'e': 5, 'c': 9}
my_dict1.update(my_dict2)
print(my_dict1)

输出结果:

{'a': 1, 'b': 2, 'c': 9, 'd': 4, 'e': 5}

注意:如果两个字典中拥有相同的键,后一个字典中的值将覆盖前一个字典中的值。

6、遍历

使用 for 循环来遍历字典中的所有键值对,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}print('输出遍历键:', end='')for key in my_dict:print(key ,' ' , end='')
print()print('输出遍历值:', end='')for val in my_dict.values():print(val,' ' , end='')
print()print('输出遍历键值对:', end='')for key, val in my_dict.items():print(key, val,'   ' , end='')
print()

输出结果:

输出遍历键:a  b  c  
输出遍历值:1  2  3  
输出遍历键值对:a 1    b 2    c 3   

7、查询字典的长度

使用内置函数 len() 来获取字典中键值对的数量,如:

my_dict = {'a': 1, 'b': 2, 'c': 3}
length = len(my_dict)
print(length)

输出结果:

3

相关文章:

Python3 字典

前言 本文主要介绍Python中的字典&#xff08;dict&#xff09;,主要内容包括&#xff1a;字典简介、字典特性、字典的基本操作。 文章目录 前言一、字典简介二、字典特性1、键值对2、无序性?3、可变性4、键的唯一性5、值的类型不限 三、字典的基本操作1、创建2、访问3、增加…...

JPA详解

文章目录 JPA概述JPA的优势JPA注解 JPA概述 Java Persistence API&#xff08;JPA&#xff09;是 Java EE 平台的一部分&#xff0c;它为开发者提供了一种用于对象关系映射&#xff08;ORM&#xff09;的标准化方法。JPA 提供了一组 API 和规范&#xff0c;用于在 Java 应用程…...

Linux线程:线程分离

目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下&#xff0c;新创建的线程是joinable的&#xff0c;线程退出后&#xff0c;需要对其进行pthread_joi…...

chatgpt之api的调用问题

1.调用api过程中&#xff0c;出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…...

Java中lambda表达式是啥怎么使用

在Java中&#xff0c;Lambda表达式&#xff08;也称为闭包&#xff09;是一种简洁地表示匿名函数&#xff08;即没有名称的函数&#xff09;的方式。它们允许你将函数作为参数传递或赋值给变量&#xff0c;从而简化代码。Lambda表达式在Java 8及更高版本中引入。 Lambda表达式…...

selenium中, quit 和close的区别

close时 """ close和quit的区别 close关闭当前页 (只是关闭了当前) quit离开整个浏览器 &#xff08;走远了&#xff09; """ from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdriver.co…...

管易云和金蝶云星空接口打通对接实战

管易云和金蝶云星空接口打通对接实战 源系统:管易云 金蝶管易云是金蝶集团旗下以电商和新零售为核心业务的子公司&#xff0c;公司于2008年成立&#xff0c;拥有从事电商及新零售业务相关专业知识工作者超过1000人。为伊利、网易有道、东阿阿胶、金龙鱼、海康、科大讯飞等超过1…...

DP-Kmaens密度峰值聚类算法

我有个问题 关于 [密度值>密度阈值] 的判定这里&#xff0c;新进来的新数据怎么确定他的密度值&#xff1f;密度阈值又是怎样确定的呢&#xff1f;...

STM32-14-FSMC_LCD

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU 文章目录 1. 显示器分类2. LCD简…...

linux nohup命令详解:持久运行命令,无视终端退出

nohup &#xff08;全称为 “no hang up”&#xff09;&#xff0c;用于运行一个命令&#xff0c;使其在你退出 shell 或终端会话后继续运行。 基本语法 nohup command [arg1 ...] [&> output_file] &command 是你想要运行的命令。[arg1 ...] 是该命令的参数。&am…...

PS系统教程09

修复照片 修饰工具 污点修复画笔工具&#xff08;J&#xff09; 主要作用&#xff1a;去除一些污点或者不需要的 【&#xff1a;缩小】&#xff1a;放大 目标&#xff1a;去掉这两个点 修复画笔工具 也就是说我们要有取样点 选择修复画笔工具按住Alt键吸取周边相近颜色松开单机…...

2024089期传足14场胜负前瞻

2024089期售止时间为6月3日&#xff08;周一&#xff09;22点00分&#xff0c;敬请留意&#xff1a; 本期1.5以下赔率5场&#xff0c;1.5-2.0赔率5场&#xff0c;其他场次是平半盘、平盘。本期14场难度偏低。以下为基础盘前瞻&#xff0c;大家可根据自身判断&#xff0c;复选增…...

备战十一届大唐杯国赛预选赛

这次省赛带了太多个省一了&#xff0c;具体可看下面的图片&#xff0c;只放了一部分。目前根据可靠消息&#xff0c;应该还有个预选赛和去年一样&#xff0c;就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二&#xff0c;没过的话就是国三。 每…...

安装 Android Studio 2024.1.1.6(Koala SDK35)和过程问题解决

记录更新Android Studio版本及适配Android V应用配置的一些过程问题。 安装包&#xff1a;android-studio-2024.1.1.6-windows.exe原版本&#xff1a;Android Studio23.2.1.23 Koala 安装过程 Uninstall old version 不会删除原本配置&#xff08;左下角提示&#xff09; Un…...

美团一面:什么是CAS?有什么优缺点?我说你说的是AtomicInteger吗?

引言 传统的并发控制手段&#xff0c;如使用synchronized关键字或者ReentrantLock等互斥锁机制&#xff0c;虽然能够有效防止资源的竞争冲突&#xff0c;但也可能带来额外的性能开销&#xff0c;如上下文切换、锁竞争导致的线程阻塞等。而此时就出现了一种乐观锁的策略&#x…...

【linux】(2)文件内容排序sort

sort 是一个用于排序文件内容的命令行工具&#xff0c;在 Linux 和 Unix 系统中非常常用。 基本用法 sort [OPTION]... [FILE]...常用选项 按数值排序 -n sort -n filename例子&#xff1a;对包含数值的文件进行排序。 按字典顺序排序 -d sort -d filename例子&#xff1…...

css 图片上添加模糊背景的文字内容

html部分 <div class"onlogo"> <img src"../assets/img/banner.png" /><div class"imgText"><div class"title">一体化电子印章应用服务</div><div class"content">为企业提供安全可靠…...

Python3 函数参数

前言 本文主要介绍python中的函数参数&#xff0c;主要内容包括形式参数与实际参数的概念、位置参数、关键字参数、默认参数、可变参数。 文章目录 前言一、形式参数与实际参数的概念二、位置参数&#xff08;也叫必需参数&#xff09;三、关键字参数四、默认参数五、可变参数…...

精准检测,可燃气体报警系统的技术原理与特点

在现代化的工业生产与日常生活中&#xff0c;可燃气体泄露事故频发&#xff0c;给人们的生命和财产安全带来了严重威胁。 因此&#xff0c;可燃气体报警检测系统的应用变得尤为重要。它不仅能够实时监测环境中的可燃气体浓度&#xff0c;还能在发现异常情况时及时报警&#xf…...

6月2(信息差)

&#x1f30d;特斯拉&#xff1a;Model3高性能版预计6月中旬开启首批交付 &#x1f384;微软对开源字体 Cascadia Code 进行重大更新 ✨天猫618加码引爆消费热潮 截至晚9点185个品牌成交破亿 1.瑞士清洁科技公司Librec开发废旧锂离子电池回收技术&#xff0c;可回收电池90%的…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...