Python基础——字典

字典是一种通过键来访问值的数据结构,无序且可变。键必须唯一且不可变,如数字、字符串或元组。创建字典可通过键值对或利用fromkeys()方法。字典支持添加、修改和删除元素,以及通过get()方法安全访问值。可以使用items(),keys(),values()进行遍历。此外,字典推导式是创建字典的简洁方式。
摘要由CSDN通过智能技术生成

字典的特征

  • 通过键而不是通过索引来读取,字典有时也被称为关联数组或者散列表,它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但是不能通过索引来获取。

  • 字典是任意对象的无序集合。字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序,这样可以提高查找顺序。

  • 字典是可变的,并且可以任意嵌套。字典可以在原处增长或者缩短(无须生成一个副本),并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。

  • 字典中的键必须唯一。不允许同一个键出现两次,如果出现了两次,则后一个值会被记住。

  • 字典中的键必须不可变。可以使用数字、字符串或者元组,但不能使用列表。

创建

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

dictionary={'key1':'value1',……,'keyn':'valuen'}

参数说明:

dictionary:表示字典名称

key:表示元素的键,必须是唯一的,并且不可变,可以是数字、字符串、元组。

vaule:表示元素的值可以是任何数据类型,不是必须唯一。

#创建空字典
dictionary = {}
或
dictionary = dict()

#通过映射函数创建字典
#zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象
#列表1:表示一个列表,用于生成指定要生成字典的键
#列表2:表示一个列表,用于指定要生成字典的值。
#如果list1和list2的长度不同,则与最短的列表长度相同
字典名称 = dict(zip(列表1,列表2))

#通过给定的键——值对创建字典
dictionary = dict(key1=value1,key2=value2,……)

#使用dict对象的fromkeys()方法创建值为空的字典
#list1:作为字典的键的列表
dictionary = dict.fromkeys(list1)

添加、修改元素

字典名[键名]=值

因字典中键名的唯一性,当键不存在时为创建,当键存在时为修改

删除

删除整个字典

del 字典名

删除字典全部元素

字典名.clear()

执行后,原字典将变为空字典

删除字典指定元素

del 字典名[键名]

#防止字典元素不存在,删除报错的改进
if 键名 in 字典名:
	del 字典名[键名]

访问字典

直接使用print()函数

print(字典名)

根据键获取值

#普通获取
print(字典名['键名'])

#避免键不存在,出现异常
print(字典名['键名'] if ’键名‘ in 字典名 else ’字典中没有此键’)

使用字典对象get()方法获取指定键的值

字典名.get(键名[,default])

default为可选项,当指定的键不存在时,返回一个默认值,如果省略,则返回None

print(字典名.get('键名','字典中没有此键'))

遍历字典

获取字典的”键—值对”元组列表

字典名.items()

可以通过for循环遍历该元组列表 

#取出键值列表
dictionary={'键1':'值1','键2':'值2','键3':'值3'}

for i in dictionary.items():
    print(i)

#取出键和值
dictionary={'键1':'值1','键2':'值2','键3':'值3'}

for key,value in dictionary.items():
    print(key ,value)

 

获取字典的”键”列表

字典名.keys()

获取字典的”值”列表 

字典名.values()

字典推导式

import random
randomdict={i:random.randint(10,100) for i in range(1,5)}
print("生成的字典为",randomdict)
结果:
生成的字典为 {1: 47, 2: 47, 3: 52, 4: 29}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快吃土的小羊吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值