Python基础教程——一次搞懂 Python 字典!Python字典的20种神奇用法

Python 字典(Dictionary)是数据结构中的一种重要类型。它以键值对的形式存储数据,具有快速查找的特性。今天我们将通过生动有趣的案例,来探讨字典的20个经典操作,帮助大家深入理解和掌握这些概念。

1. 创建字典

字典可以通过花括号 {}dict() 函数来创建。

# 使用花括号创建   
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}      
# 使用 dict() 函数创建   
my_dict = dict(name='Alice', age=25, city='New York')

2. 访问字典元素

通过键来访问字典中的值。

name = my_dict['name']   
print(name)  
# 输出: Alice

3. 添加或更新元素

通过键来添加或更新字典中的值。

my_dict['email'] = 'alice@example.com'  
# 添加新元素   
my_dict['age'] = 26  
# 更新已有元素   print(my_dict)

4. 删除元素

使用 del 语句或 pop() 方法来删除字典中的元素。

# 使用 del 语句   
del my_dict['city']      
# 使用 pop() 方法   
age = my_dict.pop('age')   
print(my_dict)   
print(age)  
# 输出: 26

5. 检查键是否存在

使用 in 关键字来检查字典中是否存在某个键。

if 'name' in my_dict:       
print('Name exists in the dictionary')

6. 获取字典的长度

使用 len() 函数来获取字典中的键值对数量。

length = len(my_dict)  
print(length)  
# 输出: 2

7. 遍历字典

可以使用 for 循环来遍历字典的键、值或键值对。

# 遍历键   
for key in my_dict:       
print(key)      
# 遍历值   
for value in my_dict.values():       
print(value)      
# 遍历键值对   
for key, value in my_dict.items():       
print(f'{key}: {value}')

8. 合并字典

使用 update() 方法来合并两个字典。

dict1 = {'a': 1, 'b': 2}   
dict2 = {'b': 3, 'c': 4}   
dict1.update(dict2)   
print(dict1)  
# 输出: {'a': 1, 'b': 3, 'c': 4}

9. 字典推导式

通过字典推导式来创建字典。

squares = {x: x*x for x in range(6)}   
print(squares)  
# 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

10. 获取所有键

使用 keys() 方法来获取字典中的所有键。

keys = my_dict.keys()   
print(keys)

11. 获取所有值

使用 values() 方法来获取字典中的所有值。

values = my_dict.values()  
print(values)

12. 获取所有键值对

使用 items() 方法来获取字典中的所有键值对。

items = my_dict.items()   
print(items)

13. 从字典中获取值

使用 get() 方法来安全地获取字典中的值,如果键不存在,则返回默认值。

name = my_dict.get('name', 'Unknown')   
print(name)  
# 输出: Alice   
nickname = my_dict.get('nickname', 'Unknown')   
print(nickname)  
# 输出: Unknown

14. 设置默认值

使用 setdefault() 方法来获取字典中的值,如果键不存在则设置默认值。

nickname = my_dict.setdefault('nickname', 'Alice')   
print(my_dict)

15. 清空字典

使用 clear() 方法来清空字典中的所有元素。

my_dict.clear()   
print(my_dict)  
# 输出: {}

16. 字典复制

使用 copy() 方法来创建字典的浅拷贝。

new_dict = my_dict.copy()   
print(new_dict)

17. 从keys创建字典

使用 fromkeys() 方法创建一个新的字典,其中的键来自于一个序列,值为提供的默认值。

keys = ['name', 'age', 'city']   
new_dict = dict.fromkeys(keys, 'unknown')   
print(new_dict)  
# 输出: {'name': 'unknown', 'age': 'unknown', 'city': 'unknown'}

18. 字典视图对象

字典的 keys(), values(), items() 方法返回的都是视图对象,这些对象会随着字典的变化而变化。

keys_view = my_dict.keys()   
print(keys_view)   
my_dict['age'] = 30   
print(keys_view)  
# 输出包含更新后的键

19. 排序字典

使用 sorted() 函数对字典的键或值进行排序。

sorted_keys = sorted(my_dict.keys())   
sorted_values = sorted(my_dict.values())   
print(sorted_keys)   
print(sorted_values)

20. 字典合并的新方法(Python 3.9+)

在Python 3.9及以上版本,可以使用 | 运算符来合并字典。

dict1 = {'a': 1, 'b': 2}   
dict2 = {'b': 3, 'c': 4}   
merged_dict = dict1 | dict2   
print(merged_dict)  
# 输出: {'a': 1, 'b': 3, 'c': 4}

通过以上20个经典操作,相信大家对Python字典的使用有了更深入的了解和掌握。在实际编程中,灵活运用这些操作,可以大大提高代码的简洁性和效率。希望这篇文章能够帮助你更好地理解和使用Python字典!

如果分享你的信息,对你有用!别忘了三连击哦——点赞、收藏、关注!

最后这里免费分享给大家一份Python全台学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
Python所有方向的学习路线图,清楚各个方向要学什么东西
100多节Python课程视频,涵盖必备基础、爬虫和数据分析
100多个Python实战案例,学习不再是只会理论
华为出品独家Python漫画教程,手机也能学习
历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

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

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

相关文章

Python从0到100(三十四):Python中的urllib模块使用指南

1. urllib模块概述 在Python中,除了广泛使用的requests模块之外,urllib模块也是处理HTTP请求的重要工具。urllib模块在Python 2中分为urllib和urllib2两个模块,而在Python 3中,它们被合并为一个urllib模块。本文将重点介绍Python…

【鸿蒙学习笔记】Column迭代完备

属性含义介绍 Column({ space: 10 }) {Row() {Text(文本描述).size({ width: 80%, height: 60 }).backgroundColor(Color.Red)}.width(90%).height(90).backgroundColor(Color.Yellow) } .width(100%) // 宽度 .height(200) // 高度 .backgroundColor(Color.Pink) // 背景色 .…

pcap包常见拆分方法

文章目录 Wireshark 拆分流量包SplitCap使用简介魔数报错示例结果 在进行流量分析时,经常需要分析pcap流量包。但是体积过大的流量包不容易直接分析,经常需要按照一定的规则把它拆分成小的数据包。 这里统一选择cic数据集里的Thursday-WorkingHours.pcap…

二、 操作系统知识(考点篇)

一、操作系统概述 操作系统定义: 能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。 操作系统有三个重要的作用: 第一&am…

【办公软件使用分享—Word篇】实用技巧 一学就会 沈阳电脑办公软件基础培训

在平时的工作学习中,Word真真是让很多人头疼的一件事,今天给大家分享20个案例,感受下Word真正的力量! 1.插入自动目录 没有目录的文档不是一份合格的文档,很多人认为在Word里插入目录是一件很麻烦的事,其…

Soul打造安全社交元宇宙环境,全力守护用户线上社交安全

在数字化时代的浪潮中,智能安全线上社交正成为人们日常生活中的重要组成部分。随着人们对社交媒体和在线平台依赖程度的不断增加,保障个人信息安全和网络安全变得至关重要。在此背景下,社交平台致力于采取多种措施来保障用户的隐私安全,提升社交体验的质量和安全性。而Soul全方…

咖啡消费旺季到来 为何想转让的库迪联营商却越来越多

文 | 智能相对论 作者 | 霖霖 去年还在朝“三年万店”计划狂奔的库迪,今年已出现明显“失速”。 早在今年2月,库迪就官宣其门店数已超过7000家,如今4个多月过去,据极海品牌监测数据显示,截至6月27日,其总…

[Shell编程学习路线]——shell脚本中case语句多分支选择详解

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月21日16点30分 🀄️文章质量:95分 ————前言———— 在Shell编程中,处理多种条件…

基于人脸68特征点识别的美颜算法(一) 大眼算法 C++

1、加载一张原图&#xff0c;并识别人脸的68个特征点 cv::Mat img cv::imread("5.jpg");// 人脸68特征点的识别函数vector<Point2f> points_vec dectectFace68(img);// 大眼效果函数Mat dst0 on_BigEye(800, img, points_vec);2、函数 vector<Point2f&g…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-38实战Kaggle比赛:图像分类 (CIFAR-10)

38实战Kaggle比赛&#xff1a;图像分类 (CIFAR-10) 比赛链接&#xff1a;CIFAR-10 - Object Recognition in Images | Kaggle 导入包 import os import glob import pandas as pd import numpy as np import torch import torchvision from torch.utils.data import Dataset…

R语言数据分析案例39-合肥市AQI聚类和多元线性回归

一、研究背景 随着全球工业化和城市化的迅速发展&#xff0c;空气污染问题日益凸显&#xff0c;已成为影响人类健康和环境质量的重大挑战。空气污染不仅会引发呼吸系统、心血管系统等多种疾病&#xff0c;还会对生态系统造成不可逆转的损害。因此&#xff0c;空气质量的监测和…

MySQL高阶:事务和并发

事务和并发 1. 事务创建事务 2. 并发和锁定并发问题 3. 事务隔离等级3.1 读取未提交隔离级别3.2 读取已提交隔离级别3.3 重复读取隔离级别3.4 序列化隔离级别 4. 死锁 1. 事务 事务&#xff08;trasaction&#xff09;是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条…

经典小游戏(一)C实现——三子棋

switch(input){case 1:printf("三子棋\n");//这里先测试是否会执行成功break;case 0:printf("退出游戏\n");break;default :printf("选择错误&#xff0c;请重新选择!\n");break;}}while(input);//直到输入的结果为假&#xff0c;循环才会结束} …

go Channel原理 (二)

Channel 设计原理 不要通过共享内存的方式进行通信&#xff0c;而是应该通过通信的方式共享内存。 在主流编程语言中&#xff0c;多个线程传递数据的方式一般都是共享内存。 Go 可以使用共享内存加互斥锁进行通信&#xff0c;同时也提供了一种不同的并发模型&#xff0c;即通…

error: Sandbox: rsync.samba in Xcode project

在Targets 的 Build Settings 搜索&#xff1a;User script sandboxing 设置为NO

python课程设计作业-TCP客户端-服务端通信

说明文档 目录 小组成员分工 作品功能介绍 使用的工具和方法 设计的步骤 课程设计中遇到的问题 结论 1. 小组成员分工 本次课程设计由以下小组成员完成&#xff1a; xxx 2. 作品功能介绍 本次课程设计的作品是一个简单的基于 TCP 协议的客户端-服务端通信示例。通过这个示…

【SpringBoot Web框架实战教程】06 SpringBoot 整合 Druid

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。大家好&#xff0c;我是闲鹤&#xff0c;微信&#xff1a;xxh_1459&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了…

阿里云centos7.9 挂载数据盘到 www目录

一、让系统显示中文 参考&#xff1a;centos7 怎么让命令行显示中文&#xff08;英文-&#xff1e;中文&#xff09;_如何在命令行中显示中文-CSDN博客 1、输入命令&#xff1a;locale -a |grep "zh_CN" 可以看到已经存在了中文包 2、输入命令&#xff1a;sudo vi…

AGPT•intelligence:带你领略全新量化交易的风采

随着金融科技的快速发展&#xff0c;量化交易已经成为了投资领域的热门话题。越来越多的投资者开始关注和使用量化交易软件来进行投资决策。在市场上有许多量化交易软件可供选择。 Delaek&#xff0c;是一位资深的金融科技专家&#xff0c;在 2020年成立一家专注于数字资产量化…

第一后裔延迟高怎么办?快速降低第一后裔延迟

第一后裔/The First Descendant一款射击游戏&#xff0c;融合了刷宝、角色扮演、团队合作、剧情等元素&#xff0c;让每个玩家都能在自己的角度上&#xff0c;找到切入点&#xff0c;并不断地成长&#xff0c;一步步解开后裔身上隐藏的秘密。近期该作正式上线&#xff0c;很多玩…