Python入门(7):Python序列结构-字典

字典Dictionary

字典(dictionary)和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的为容是以"键-值对"的形式存放的。

Python 中的字典相当于 Java 或者 C++中的 Map 对象。在C#中,就是Dictionary<TKey,TValue>

字典的主要特征如下

① 通过键而不是通过索引来读取

字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。
② 字典是任意对象的无序集合
字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序。这样可以提高查找顺序。
③字典是可变的,并且可以任意嵌套
字典可以在原处增长或者缩短(无须生成一份拷贝),并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典),
④ 字典中的键必须唯、
不允许同一个键出现两次,如果出现两次,则后一个值会被记住。
⑤ 字典中的键必须不可变
字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表

字典的定义和删除

定义字典时,每个元素都包含两个部分"键"和"值",并且在"键"和"值"之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一个大括号"{}"中。使用del命令来删除字典

空字典

dictionary={} 或者 dictionary=dict()

创建字典

通过映射函数创建字典

语法如下:

dictionary = dict(zip(list1,list2))
参数说明如下:
dictionary:表示字典名称。
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的 zip 对象。如果想得到元组,可以将 zip 对象使用 tuple()函数转换为元组;如果想得到列表,则可以使用 list()函数将其转换为列表。

listl:表示一个列表,用于指定要生成字典的键。

list2:表示一个列表,用于指定要生成字典的值。如果 listl 和 list2 的长度不同,则与最短的列表长度相同

通过指定的键值对创建字典

在 Python 中,还可以使用 dict 对象的 fromkeys()方法创建值为空的字典,语法如下:

dictionary= dict.fromkeys(list1)

访问字典

可以使用dictkey ,当key不存在时抛出异常

dict.get(key,default) 当key不存在时,返回None

遍历字典

使用字典对象的 items()方法可以获取字典的"键-值对"列表。其语法格式如下:

dictionary.items()

dictionary.keys()

dictionary.values()

字典推导式

randomdict ={i:random.randint(10,100) for i in range(1,5)}

测试字典程序如下:

python 复制代码
import random

gjqt3={1:"北洛",2:"云无月",3:"岑缨"}
print("古剑奇谭3字典:",gjqt3)
swordNames=("钟","剑","斧","壶","塔")
swordValues=["东皇钟","轩辕剑","盘古斧","炼妖壶","昊天塔","伏羲琴"]
#组合成字典时,选择集合长度较短的,多余的将忽略
dictionary=dict(zip(swordNames,swordValues))
print("十大神器:",dictionary)
print("------向字典中添加元素------")
dictionary["琴"]="伏羲琴"
dictionary.__setitem__("鼎","神农鼎")
print(dictionary)
pal3=dict(role1="景天",role2="雪见",role3="龙葵",role4="紫萱")
print("仙剑三:",pal3)
print("------使用[Key],get()函数来访问字典的元素------")
print(pal3["role3"])
print(pal3["role5"] if "role5" in pal3 else "不存在role5")
print(pal3.get("role2","不存在"))
print("------遍历字典items()函数,每个元素为元组(key,value)------")
for item in pal3.items():
    print(item)
for key,val in pal3.items():
    print(key,"=",val)
print("------创建值为空的字典------")
dictionary=dict.fromkeys(["死亡骑士","巫妖","地穴领主","恐惧魔王"])
print(dictionary)
print("------clear()方法将字典设置为空字典------")
dictionary.clear()
print(dictionary)
print("------字典推导式------")
randDict={i:random.randint(10,100) for i in range(1,8)}
print(randDict)

运行如图:

相关推荐
shehuiyuelaiyuehao19 小时前
多线程入门
java·python·算法
Oo92020 小时前
Prompt工程核心与Python 字典
python·ai编程
feeday20 小时前
gpt4o 图像反推提示词
开发语言·人工智能·python
沈浩(种子思维作者)20 小时前
没有错误,正确将一文不值
人工智能·python·算法·量子计算
smith成长之旅21 小时前
06 | Mem0 框架分析:为什么要从记忆中提取实体?——Entity Store 的设计动机与工程实现
人工智能·python
smith成长之旅21 小时前
07 | Mem0 框架分析:三路信号融合——语义 + BM25 + Entity Boost 的混合检索
python·算法
荣码21 小时前
【Python知识详解】变量与数据类型:深入理解 Python 的数据世界
python
春日见1 天前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉
weixin_468466851 天前
Prometheus监控服务部署与实战指南
服务器·后端·python·docker·自动化·prometheus
花酒锄作田1 天前
[Python]标准库argparse解析命令行参数使用介绍
python