python基础——字典【特点,定义,引用操作,pop,clear,keys,items】

📝前言:
今天我们来学习一下python中的常见数据容器之一——字典
1,字典的特点及定义
2,字典的引用操作
3,字典的常见操作方法

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:杀不死我的,都将使我更加强大


文章目录

  • 一,字典的特点及其定义
    • 1,字典的特点:
    • 2,字典的定义
  • 二,字典的引用
  • 三,字典的常用操作
    • 1,修改字典中key所对应的值
    • 2,删除和清空元素(pop、clear)
    • 3,获得全部的键(keys())
    • 4,获取所有键值对(items())
  • 四,总结

一,字典的特点及其定义

1,字典的特点:

1,可以容纳多个数据,并且数据的类型可以不同
2,每一份数据都是以key-value键值对的形式存在(这就是键值对映射)
3,可以通过key获得value
4,不是序列,不支持下标索引
5,可以修改

2,字典的定义

字典的定义使用花括号 {},其中的键和值用冒号 : 分隔。
和值可以是任何类型的对象,例如整数、浮点数、字符串、列表、元组或另一个字典。
但是,字典的键必须是不可变的,类似列表或者字典这种可变的就不能做字典的键

示例:

# 定义一个包含三组键值对的字典
my_dict = {"name": "Alice", "age": 25, "city": "New York"}# 定义空字典
my_dict = {}  # 方式一
my_dict = set()  # 方式二# 定义嵌套字典 (即键的值对应的又是字典)
nested_dict = {"colors": {"red": "#FF0000","green": "#00FF00","blue": "#0000FF"},"shapes": {"circle": "⚪","square": "⚫","triangle": "⚓"}
}
# 在这个示例中,nested_dict 是一个包含两个子字典的嵌套字典。
# 子字典 "colors" 的键是颜色,子字典 "shapes" 的键是形状。每个子字典中都包含一些值。

二,字典的引用

字典不可以通过下标索引来获取值,但是可以通过key来获取
语法:

字典[]

示例(使用上面创造的嵌套字典):

nested_dict = {"colors": {"red": "#FF0000","green": "#00FF00","blue": "#0000FF"},"shapes": {"circle": "⚪","square": "⚫","triangle": "⚓"}
}# 取colors这个键对应的值:
print(nested_dict["colors"])# 要取内层字典colors里面的red对应的值:
print(nested_dict["colors"]["red"])  # 这种写法类似取嵌套的列表里面的值

输出结果:
在这里插入图片描述
(可见:colors是嵌套的内层字典)

三,字典的常用操作

1,修改字典中key所对应的值

语法:

字典[key] = value # 这个就类似我们修改列表对应下标的元素

需要注意的是:当key不存在的时候,字典会自动添加一个新的键值对
(而在列表里面,当访问不存在的下标时,即越界,则会报错)

示例:

# 创建成员字典,假设每个键值对是成员和他们对应的年龄
member_dict = {"小红":21, "小黄":17, "小绿":35}# 修改小红的年龄
member_dict["小红"] = 24# 添加一个小黑,对应41岁
member_dict["小黑"] = 41# 打印修改和添加完以后的字典
print(member_dict)

输出结果:
在这里插入图片描述
可见:小红被修改了;小黑被添加了

2,删除和清空元素(pop、clear)

(1)删除元素(直接修改原字典)
pop() 方法是字典的一个内置方法,用于删除字典中指定的键所对应的值,并且返回那个值。
但是👇🏻
1,如果不指定键,则会删除字典中的最后一个键值对,并返回该值。
2,如果没有找到指定的键,则抛出KeyError异常。

下面是使用pop的示例:

# 假设有一个字典叫做 dict
dict = {'a': 1, 'b': 2, 'c': 3}# 删除键 'a' 对应的值,并返回这个值
value = dict.pop('a')
# 此时 dict 变成了 {'b': 2, 'c': 3}# 如果不指定键,则删除并返回最后一个键值对
value = dict.pop()
# 此时 dict 变成了 {'b': 2}# 如果删除的键不存在,则会抛出 KeyError,如:
# value = dict.pop('d')  # 这会抛出 KeyError,因为 'd' 键不存在

对于键不存在的时候,还有第二种情况:
pop() 方法还可以接收一个默认值作为参数,如果指定的键不存在,则返回这个默认值,而不是抛出异常

dict = {'a': 1, 'b': 2, 'c': 3}
# 删除键 'd',如果没有找到则返回默认值 0
default_value = dict.pop('d', 0)
# 此时 dict 保持不变,因为没有找到键 'd',default_value会接收到被设置的默认返回值0

(2)清空元素
clear()方法同样可以用来清空字典
示例:

member_dict = {"小红":21, "小黄":17, "小绿":35}
# 清空字典
member_dict.clear()
print(member_dict)  # 输出 {}

3,获得全部的键(keys())

字典中的keys()方法可以用来获取这个字典里面全部的键,返回的是一个dict_keys对象
语法:

字典.keys()  # 注意括号不能漏

示例:

member_dict = {"小红":21, "小黄":17, "小绿":35}
all_keys = member_dict.keys()
print(all_keys)  # 输出 dict_keys(['小红', '小黄', '小绿'])# 将keys()结合for循环来使用,可以实现遍历字典的每一个键
for key in member_dict.keys():print(key)  # 输出 小红 小黄 小绿 # 也可以直接使用for来遍历字典中的每一个键
for key in member_dict:print(key, end=" ")  # 输出 小红 小黄 小绿 

4,获取所有键值对(items())

items() 方法是字典对象的一个内置方法,用于返回一个包含所有字典键值对的可迭代对象dict_items(它和dict_keys都不是普通的列表)。
每个元素是一个键值对组成的元组(key, value)。

下面是 items() 方法的一些基本用法:

# 使用 items() 方法获取字典中所有键值对的列表
dict = {'a': 1, 'b': 2, 'c': 3}
items = dict.items()
print(items)  # 输出dict_items([('a', 1), ('b', 2), ('c', 3)])# 我们同样可以使用for循环去遍历它:
for i in items:print(i, end=" ")# 输出 ('a', 1) ('b', 2) ('c', 3) 

四,总结

在这里插入图片描述


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

功能齐全的免费 IDE Visual Studio 2022 社区版

面向学生、开放源代码和单个开发人员的功能齐全的免费 IDE 下载地址 Visual Studio 2022 社区版 - 下载最新的免费版本 Visual Studio 2022 Community Edition – Download Latest Free Version 准备安装 选择需要安装的程序 安装进行中 使用C学习程序设计相关知识并培养编程…

C# WPF编程-布局

C# WPF编程-布局 布局WPF布局原则布局过程布局容器布局属性Border控件StackPanel布局WrapPanel布局DockPanel布局Grid布局UniformGrid布局Canvas布局 布局 WPF布局原则 WPF窗口只能包含单个元素。为在WPF窗口中放置多个元素并创建更贴近实用的用户界面,需要在窗口…

【Android】【Bluetooth Stack】蓝牙电话协议分析(超详细)

1. 精讲蓝牙协议栈(Bluetooth Stack):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅,【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…

MyBatis框架简述

作用 降低开发人员使用JDBC的难度降低开发人员进行Dao层的开发难度 MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD。MyBatis在三层架构中负责持久层的,属于持久层框架。MyBatis的发展历程:【引用百度百科】 MyBatis本是apache的一个开…

图书推荐|高性能Linux网络编程核心技术揭秘

实战基于libevent 的FTP服务器、基于epoll的高并发聊天服务器、基于DPDK的应用案例 本书简介 本书详解高性能Linux网络编程的核心技术及DPDK框架,剖析Nginx高性能服务器架构,实战基于libevent 的FTP服务器、基于epoll的高并发聊天服务器、基于DPDK的应用…

Docker网桥、DockerFile自定义镜像、DockerCompose工具(二)

这里写目录标题 1、网桥1.1、网络相关操作1.1.1、创建网络1.1.2、列出网络1.1.3、加入网络1.1.4、查看网络详情1.1.5、删除网络 2、Dockerfile自定义镜像2.1、镜像结构2.2、Dockerfile语法2.2.1、概述2.2.2、快速入门2.2.1、FROM2.2.2、CMD2.2.3、ENV2.2.4、WORKDIR2.2.5、run2…

关于汽车中网改装需要报备吗?(第二天)

车联网改造需要申报吗? 今天2022年10月20日,小编就给大家介绍一下车联网改装是否需要申报的相关知识。 让我们来看看。 汽车格栅改装无需申报。 这种年检可以直接通过。 您不必担心,因为汽车格栅对于实车的外观来说并不陌生,因此…

设计编程网站集:生活部分:饮食+农业,植物(暂记)

这里写目录标题 植物相关综合教程**大型植物:****高大乔木(Trees):** 具有坚硬的木质茎,通常高度超过6米。例如,橡树、松树、榉树等。松树梧桐 **灌木(Shrubs):** 比乔木…

flutter使用记录(vscode开发)

1.Gradle-7.6.3-all.zip 下载失败 编辑项目中的 gradle/wrapper/gradle-wrapper.properties 文件,并设置 distributionUrl 的值为可靠的镜像站点,如下所示: distributionUrlhttps\://services.gradle.org/distributions/gradle-7.6.3-all.z…

HarmonyOS ArkTS 基础组件

目录 一、常用组件 二、文本显示(Text/Span) 2.1 创建文本 2.2 属性 2.3 添加子组件(Span) 2.4 添加事件 三、按钮(Button) 3.1 创建按钮 3.2 设置按钮类型 3.3 悬浮按钮 四、文本输入(TextInput/TextArea)…

个人网站制作 Part 14 添加网站分析工具 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 添加网站分析工具🔨使用Google Analytics🔧步骤 1: 注册Google Analytics账户🔧步骤 2: 获取跟踪代码 🔨使用Vue.js&#…

分库分表场景下多维查询解决方案(用户+商户)

在采用分库分表设计时,通过一个PartitionKey根据散列策略将数据分散到不同的库表中,从而有效降低海量数据下C端访问数据库的压力。这种方式可以缓解单一数据库的压力,提升了吞吐量,但同时也带来了新的问题。对于B端商户而言&#…

权限提升-Web权限提升篇划分获取资产服务后台系统数据库管理相互转移

知识点 1、权限提升转移-分类&高低&场景 2、Web权限提升及转移-后台&数据库 3、后台权限及转移-转移对象&后台分类 章节点: 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及转移 4、域控权限提升及转移 基础点 0、为什么我们要学…

B004-springcloud alibaba 服务容错 Sentinel

目录 高并发带来的问题服务雪崩效应常见容错方案常见的容错思路隔离超时限流熔断降级 常见的容错组件 Sentinel入门什么是Sentinel微服务项目集成Sentinel核心库安装Sentinel控制台实现一个接口的限流 Sentinel的概念和功能基本概念重要功能 Sentinel规则流控规则三种流控模式三…

verilog设计-CDC:单bit脉冲快时钟域到慢时钟域

一、前言 当单bit信号由快时钟域传递给慢时钟域时,快时钟域的异步信号最小可为快时钟信号的一个时钟周期脉冲,快时钟域的单时钟周期脉冲长度小于慢时钟域的时钟周期,很有可能该脉冲信号在慢时钟域的两个时钟上升沿之间,导致该脉冲…

Flask中的Blueprints:模块化和组织大型Web应用【第142篇—Web应用】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Flask中的Blueprints:模块化和组织大型Web应用 在构建大型Web应用时&#xff0…

数据机构-2(顺序表)

线性表 概念 顺序表 示例&#xff1a;创建一个存储学生信息的顺序表 表头&#xff08;Tlen总长度&#xff0c; Clen当前长度&#xff09; 函数 #include <seqlist.c> #include <stdio.h> #include <stdlib.h> #include "seqlist.h" #include &…

【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)

OTA最优传输 &#x1f680;&#x1f680;&#x1f680;摘要一、1️⃣ Introduction---介绍二、2️⃣Related Work---相关工作2.1 &#x1f393; Fixed Label Assignment--静态标签分配2.2 ✨Dynamic Label Assignment--动态标签分配 三、3️⃣Method---论文方法3.1 &#x1f39…

Linux - 应用层HTTPS、传输层TCP/IP模型中典型协议解析

目录 应用层&#xff1a;自定制协议实例 HTTP协议首行头部空行正文http服务器的搭建 HTTPS协议 传输层UDP协议TCP协议 应用层&#xff1a; 应用层负责应用程序之间的沟通—程序员自己定义数据的组织格式 应用层协议&#xff1a;如何将多个数据对象组织成为一个二进制数据串进行…

【探讨】基于卷积神经网络深度学习模型的光场显微三维粒子空间分布重建

光场显微粒子图像测速技术通过单光场相机即可实现微尺度三维速度场的测量&#xff0c;但单光场相机角度信息有限&#xff0c;导致粒子重建的轴向分辨率低、重建速度慢。基于此&#xff0c;提出一种基于卷积神经网络深度学习模型的光场显微粒子三维空间分布重建方法&#xff0c;…