首页 > 编程语言 >Python学习:字典

Python学习:字典

时间:2024-03-25 17:00:39浏览次数:26  
标签:Python age Alice 学习 dict 键值 my 字典

Python 字典概念

在Python中,字典(Dictionary)是一种无序、可变、键值对(key-value pairs)存储结构的数据类型。字典使用大括号{}来表示,其中每个键值对用冒号:分隔,键和值之间用逗号,分隔。
在这里插入图片描述

以下是一个简单的字典示例:

my_dict = {"name": "Alice", "age": 30, "city": "New York"}

在字典中,键必须是唯一的,并且通常是不可变的数据类型,比如字符串、数字或元组。值可以是任意数据类型,包括字符串、数字、列表、元组、字典等。

需要注意的是,字典是无序的,即不保证键值对的顺序与添加顺序相同。
在这里插入图片描述

Python字典创建

在Python中,可以使用以下方法来创建字典:

  1. 使用大括号{}和冒号:来定义键值对:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
  1. 使用dict()函数来创建字典,可以传入以列表或元组形式表示的键值对:
my_dict = dict([("name", "Alice"), ("age", 30), ("city", "New York")])
  1. 使用dict()函数和关键字参数来创建字典:
my_dict = dict(name="Alice", age=30, city="New York")
  1. 使用推导式(dictionary comprehension)来创建字典:
my_dict = {key: value for key, value in [("name", "Alice"), ("age", 30), ("city", "New York")]}
  1. 通过键值对添加方式创建字典:
my_dict = {}
my_dict["name"] = "Alice"
my_dict["age"] = 30
my_dict["city"] = "New York"

无论采用哪种方式,都可以灵活地创建字典并指定相应的键和值。请根据实际需求选择最适合的方法来创建字典。

Python字典访问

在Python中,可以通过键来访问字典中的值。以下是几种常见的方法来访问字典:

  1. 使用方括号和键名来直接访问值:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
print(my_dict["name"])  # 输出:Alice
  1. 使用get()方法来访问值,如果键不存在,则返回None或指定的默认值:
print(my_dict.get("age"))          # 输出:30
print(my_dict.get("gender", "NA")) # 输出:NA
  1. 使用keys()方法来遍历所有键,并访问相应的值:
for key in my_dict.keys():
    print(key, my_dict[key])
  1. 使用values()方法来遍历所有值:
for value in my_dict.values():
    print(value)
  1. 使用items()方法来同时遍历所有键和值对:
for key, value in my_dict.items():
    print(key, value)

在访问字典时,需要确保键存在,否则会引发KeyError异常。因此,在不确定键是否存在时,最好使用get()方法或适当的异常处理机制来避免程序崩溃。

Python字典修改

在Python中,可以通过键来修改字典中的值。以下是几种常见的方法来修改字典:

  1. 直接使用方括号和键名来修改值:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
my_dict["age"] = 31
print(my_dict)  # 输出:{"name": "Alice", "age": 31, "city": "New York"}
  1. 使用update()方法来更新多个键值对:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
my_dict.update({"age": 31, "city": "Los Angeles"})
print(my_dict)  # 输出:{"name": "Alice", "age": 31, "city": "Los Angeles"}
  1. 如果要添加新的键值对,同样可以使用方括号和键名来实现:
my_dict = {"name": "Alice", "age": 30}
my_dict["city"] = "New York"
print(my_dict)  # 输出:{"name": "Alice", "age": 30, "city": "New York"}

需要注意的是,如果指定的键不存在,上述方法都会添加新的键值对。如果键已经存在,则会更新对应的值。确保在修改字典时使用正确的键,并适当处理键不存在的情况。

Python字典删除

在Python中,可以使用以下几种方法来删除字典中的键值对:

  1. 使用del语句删除指定的键值对:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
del my_dict["age"]
print(my_dict)  # 输出:{"name": "Alice", "city": "New York"}
  1. 使用pop()方法删除指定键,并返回对应的值:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
removed_value = my_dict.pop("age")
print(my_dict)         # 输出:{"name": "Alice", "city": "New York"}
print(removed_value)   # 输出:30
  1. 使用popitem()方法随机删除一个键值对(通常是最后一个),并返回该键值对:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
removed_item = my_dict.popitem()
print(my_dict)         # 输出:{"name": "Alice", "age": 30}
print(removed_item)    # 输出:("city", "New York")
  1. 使用clear()方法清空整个字典:
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
my_dict.clear()
print(my_dict)  # 输出:{}

在使用上述方法删除键值对时,需要注意是否需要被删除的键存在于字典中,以避免出现KeyError异常。根据具体需求选择适合的删除方法。

Python字典特性

Python字典的特性包括:

  1. 无序性:字典中的键值对没有固定的顺序,并且无法通过索引来访问。这是因为字典是基于哈希表实现的,所以存储的顺序是不确定的。

  2. 可变性:可以向字典中添加、修改或删除键值对。字典是可变的数据类型,可以在运行时进行修改。

  3. 唯一键:字典中的键必须是唯一的,不能存在重复的键。若添加重复的键,则后添加的键对应的值会覆盖之前的值。

  4. 键的不可变性:字典的键必须是不可变(immutable)的类型,比如字符串、数字或元组,因为键作为哈希值的索引需要保持稳定性。

  5. 多种数据类型:字典中的值可以是任意数据类型,包括字符串、数字、列表、元组、字典等。

  6. 数据存储:字典使用键值对的形式存储数据,对应关系是通过键来建立的,通过键可以快速地查找和访问对应的值。

  7. 动态性:字典的大小是动态的,可以根据需要随时添加或删除键值对,灵活地适应不同的需求。

字典是Python中常用的数据结构之一,提供了便捷的方式来存储和操作键值对。了解这些特性对于正确使用字典非常重要。

Python内置函数和方法

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

标签:Python,age,Alice,学习,dict,键值,my,字典
From: https://blog.csdn.net/sixpp/article/details/137017589

相关文章

  • ES6学习之路:迭代器Iterator和生成器Generator
    迭代器一、知识背景什么是迭代器迭代器就是在一个数据集合中不断取出数据的过程迭代和遍历的区别遍历是把所有数据都取出迭代器注重的是依次取出数据,它不会在意有多少数据,也不会保证能够取出多少或者能够把数据都取完。比如斐波那契额数列,就可以使用迭代器进行无限......
  • Java学习第二天
    类型转换高转低要强制转换,而低转高则自动转换如何进行强制转换:(要转换的数据类型)变量名例如:inti=10;byteb=(byte)i;注意点:不能对布尔值进行转换。不能把对象类型转换为不相干类型。转换时可能存在内存溢出或者精度问题。变量变量作用域类变量实例变量局部......
  • 文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题
    Authors:LongBai1†,MobarakolIslam2†,LalithkumarSeenivasan3andHongliangRen1,3,4∗,SeniorMember,IEEESource: 2023IEEEInternationalConferenceonRoboticsandAutomation(ICRA2023)May29-June2,2023.London,UKAbstract:尽管有计算机......
  • 【PLC学习十一】浅谈西门子PLC的PID控制功能
    【PLC学习十一】浅谈西门子PLC的PID控制功能PID是自动控制中最常见的控制器,那么他在PLC中是如何实现的呢?文章目录【PLC学习十一】浅谈西门子PLC的PID控制功能前言一、PID是什么?二、西门子PID模块1.输入参数CONT_C2.输出参数CONT_C三、CONT_C实际使用1、写一个单独......
  • Python文件相关操作与os模块
    文件操作格式:stream=open(path/filename,mode)  #相当于打开一个管道container=stream.read()          #从管道中读取文件 读文件mode的值表示模式,例如mode='r'表示读文件,下表为mode为不同值时的操作。'r'读取(默认)'w'写入,并先截......
  • python的re正则匹配
    1、re.findall(r'\bf[a-z]*','whichfootorhandfellfastest')表示什么意思这个正则表达式 r'\bf[a-z]*' 用于在给定的字符串中找到以字母'f'开头的单词。让我来逐步解释:r 前缀表示这是一个原始字符串(rawstring),在Python中使用正则表达式时常见的做法,因为它可......
  • F28004X系列学习总结(3)——GPIO模块
    首先学习的模块就是GPIO,学习完后我们可以做到简单的点灯程序。I/O口配置步骤1、计划自己准备使用的设备引脚2、启动上拉电阻使能(使用GPxPOD寄存器)3、选择输入资格(使用GPxQSELN寄存器,同步、设置采样窗口)4、选择I/O口的方向(使用GPxDIR寄存器)5、选择低功耗模式唤醒源6、选......
  • 【机器学习】深入解析线性回归模型
    【机器学习】深入解析线性回归模型引入一初步了解1.1概念1.2类比二基本要素2.1数据2.2模型方程2.3损失函数2类比2.4线性回归中的损失函数2.5优化算法三寻找最佳参数3.1初始化参数:3.2定义损失函数:3.3选择优化算法:3.4迭代优化过程:3.5检查收敛性和过拟合......
  • ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程
    原文链接:ChatGPTGPT4科研应用、数据分析与机器学习、论文高效写作、AI绘图技术教程https://mp.weixin.qq.com/s?__biz=MzUzNTczMDMxMg==&mid=2247598798&idx=2&sn=014f5ae90306a3b1e8fd87ab58561411&chksm=fa820329cdf58a3f72799a43016b223057fd1bd022849e607d1e62193dcdc3b26b......
  • 学习人工智能:Attention Is All You Need-3-训练;结果;结论;Transformer模型相当于 E=MC^2
    5训练Training本节描述了我们模型的训练方案。5.1训练数据和批次处理TrainingDataandBatching我们在标准的WMT2014英德数据集上进行了训练,该数据集包含约450万个句子对。句子使用字节对编码[3]进行编码,其共享源-目标词汇表包含约37000个标记。对于英法翻译,我们使用......