[Python学习篇] Python字典

news2024/11/27 2:14:26

字典是一种可变的、无序的键值对(key-value)集合。字典在许多编程(Java中的HashMap)任务中非常有用,因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。

语法:

变量 = {'key1': 'value1', 'key2': 'value2', 'keyn': 'valuen'}

# 空字典

变量 = {}

变量 = dict()

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1)

插入/修改数据

语法:

字典序列[key] = value        # key不存在就插入数据。key存在就修改key的value。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1['id'] = 1
print(dict1)  # {'name': 'Tom', 'age': 18, 'gender': '男', 'id': 1}

删除数据

  • del() / del:删除字典或删除字典中指定的键值对。

语法:

del 字典序列[key]           # del (字典序列)

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
del dict1['age']
print(dict1)  # 删除键值对,打印 {'name': 'Tom', 'gender': '男'}

del dict1  # 删除对象
  • clear():清空字典

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
dict1.clear()
print(dict1)  # {}

查找数据

  • key的方式查找:查找到数据,返回数据。没有查找到数据,报错 KeyError: 'key'

语法:

字典序列[key]       

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1['name'])  # Tom
  • get():如果当前查找的key不存在则返回第⼆个参数(默认值),如果省略第⼆个参数,则返回None。

语法:

字典序列.get(key, 默认值)

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.get('name', "Jerry"))  # Tom
  • keys():获取字典所有的key,返回一个列表序列。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.keys())  # dict_keys(['name', 'age', 'gender'])
  • values():获取字典所有的value,返回一个列表序列。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.values())  # dict_values(['Tom', 18, '男'])
  • items():获取字典所有的键值对。返回一个列表序列,列表中存放着键值对的元组。

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
print(dict1.items())  # dict_items([('name', 'Tom'), ('age', 18), ('gender', '男')])

循环遍历

  • 遍历字典的key

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key in dict1.keys():
    print(key)

  • 遍历字典的value

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for value in dict1.values():
    print(value)

  • 遍历字典的元素

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for item in dict1.items():
    print(item)

  • 遍历字典的键值对

示例:

dict1 = {'name': 'Tom', 'age': 18, 'gender': '男'}
for key, value in dict1.items():
    print(f'key: {key}, value: {value}')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

16.RedHat认证-Ansible自动化运维(中)

16.RedHat认证-Ansible自动化运维(中) 部署Ansible Ansible的Inventory文件 Inventory文件定义了ansible管理的主机,说白了就是Inventory文件中的内容是记录被管理的主机。 Inventory文件分为两种,一种是静态的Inventory文件,一种是动态的…

IAP固件升级进阶(Qt上位机)

前言 时隔近一年,再次接触IAP固件升级,这次修改了以前的一些bug,同时新增一些实用性的功能。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com。 上位机界面 视频演示 当Up对iap固件升级的机制有了更深的理解后…

【论文阅读笔记】PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation

1.论文介绍 PA-SAM: Prompt Adapter SAM for High-Quality Image Segmentation PA-SAM:用于高质量图像分割的提示适配器SAM 2024年 ICME Paper Code 2.摘要 Segment Anything Model,SAM在各种图像分割任务中表现出了优异的性能。尽管SAM接受了超过10亿…

【Unity每日一记】如何在Unity里面添加视频,做媒体屏幕

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

降噪领夹麦克风哪个牌子好?揭秘无线领夹麦克风哪个降噪好

相信很多新手视频创作者都有一个疑问:为什么别人的视频或者直播音质这么清晰,几乎没什么噪音呢?其实最主要的就是麦克风的原因,相机或手机内置的麦克风是无法提供高质量的音频记录以及很好的指向性的。 想要拍摄出来的视频作品拥有…

零基础直接上手java跨平台桌面程序,使用javafx(七)用户操作界面探讨,这个系列结束

GUI&#xff0c;我们还是喜欢web。如果javafx有像wpf的WebView2差不多的功能&#xff0c;我们就开心了scene builder中拖出一个webview&#xff0c;然后再回到代码中。发现<?import javafx.scene.web.*?>是红色的&#xff0c;我们缺少配置。于是在pom.xml中添加JavaFX依…

5.华为交换机局域网vlan网段隔离配置

目的:PC1与PC2互通 与PC3隔离 LSW1配置 [Huawei]vlan batch 10 20 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 10 [Huawei-GigabitEthernet0/0/1]int g0/0/2 [Huawei-GigabitEthernet0/0/2]port…

【网络安全学习】使用Kali做渗透情报收集-02-<指纹识别+目录扫描>

1.指纹识别 指纹识别是指通过一些特征或特定文件来识别目标网站或系统的类型、版本、组件等信息&#xff0c;以便寻找相应的漏洞或攻击方法。 主动指纹识别 通过向目标系统发送正常和异常的请求以及对文件内容的查找&#xff0c;记录响应方式&#xff0c;然后与指纹库进行对比…

树莓派pico入坑笔记,mpy文件制作

py文件本质上就是一个文本文件&#xff0c;运行时使用python解释器解释成机器运行的代码&#xff0c;然而对于单片机这样资源紧张的计算机来说&#xff0c;一个库文件或者运行代码文件的文本还是太大了。 因此&#xff0c;为了减小代码存储空间&#xff0c;可以将代码预处理&a…

Java多线程下载工具,多线程,多任务,断点续传,GUI

目录 一、题目要求 二、效果展示 三、功能实现 四、代码 一、题目要求 序号 功能名称 功能需求标识 简要描述 1 下载功能 Download 当用户输入一个下载链接后&#xff0c;能识别链接并开始多线程下载工作&#xff0c;包括线程监听、线程管理等。 2 续传功能 …

【Effective Web】常见的css居中方式

CSS居中方式 水平居中 text-align:center 适用范围&#xff1a;容器中都是行内元素 缺点&#xff1a;容器内所有元素都会居中&#xff0c;如果是文本描述需要左对齐&#xff0c;需要增加text-align:left覆盖 margin: 0 auto 适用范围&#xff1a;容器宽度固定。子元素宽度…

多目标粒子群算法(MOPSO):原理讲解与代码实现 Matlab代码免费获取

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 粒子群算法 多目标粒子群算法 一、外部档案…

嵌入式linux系统中SPI子系统原理分析01

大家好,今天给大家分享一下,如何使用linux系统中的SPI通信协议,实现主从设备之间的信息传递。 SPI是一种常见的设备通用通信协议。它是一个独特优势就是可以无中断发送数据,可以连续发送或接收任意数量的位。而在I2C和UART中,数据以数据包的形式发送,有限定位数。 …

【Java05】Java中的多维数组

从数组底层运行机制上看&#xff0c;Java没有多维数组一说。所谓多维数组&#xff0c;是说一个引用变量指向的元素也是引用变量。 例如&#xff0c;type[] arrayName是个指向type类型元素的数组。倘若type也是数组引用变量&#xff0c;比如int[]&#xff0c;那么这个数组就可以…

算法题解记录29+++全排列(百日筑基)

一、题目描述 题目难度&#xff1a;中等 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示…

VUE3版本新特性

VUE3版本新特性 VUE3和VUE2的区别路由的使用vite安装项目新特性使用 1.VUE3和VUE2的区别 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece 于 2022 年 2 月 7 日星期一成为新的默认版本! Vue3性能更高,初次渲染快55%, 更新渲染快133% 。…

ROS中使用超声波传感器(附代码)

在ROS中使用超声波传感器通常涉及到订阅或发布sensor_msgs/Range类型的消息。下面是一个简单的示例&#xff0c;展示了如何使用C在ROS中编写一个超声波传感器的驱动程序。这个例子假设你有一个超声波传感器连接到了Arduino或者其他微控制器&#xff0c;并且该微控制器已经通过串…

FreeRtos-09事件组的使用

1. 事件组的理论讲解 事件组:就是通过一个整数的bit位来代表一个事件,几个事件的or和and的结果是输出 #define configUSE_16_BIT_TICKS 0 //configUSE_16_BIT_TICKS用1表示16位,用0表示32位 1.1 事件组适用于哪些场景 某个事件若干个事件中的某个事件若干个事件中的所有事…

经历的分享

我是三本计算机科学技术跨考上岸的学生&#xff0c;本科阶段技术能力并没有掌握多少&#xff0c;在选择导师时屡屡碰壁&#xff0c;我当时向许多计算机方向的导师&#xff0c;比如大数据方向,计算机视觉 迁移学习和图像处理方向的导师全都拒绝了我&#xff0c;最终学校给我分配…

Ubuntu 在线或离线安装docker

查看自己的ubuntu版本 在终端中执行以下命令&#xff1a; lsb_release -a 终端中的复制粘贴&#xff1a; ctrl shift c ctrl shifr v 在线安装docker&#xff08;不需要外网&#xff09;: 命令行安装&#xff1a;Ubuntu Docker -- 从入门到实践 看完…