Python 基础之 "组合数据类型" 字典

键值对
根据一个信息查找另一个信息的方式构成了"键值对",它表示索引用的键和对应的值构成的关系。

字典的特征

1.通过键从字典中获取指定的项,但是不能通过索引来获取
2.字典是无序的,也被称为hash表(散列表)
3.是python中的可变序列
4.字典中的键必须唯一,如果出现两次,后出现的将覆盖先出现的
5.字典中的键要求是不可变序列

字典的创建
1.使用{}直接创建字典

d={key1:value1;key2:value2,....}

示例:

d={10:'cat',20:'yoon',30:'hank',20:'uuu'} # key相同,后出现的覆盖先出现的
print(d)
#输出结果:{10: 'cat', 20: 'uuu', 30: 'hank'}

2.使用内置函数dict()创建字典
通过映射函数创建字典

zip(lst1,lst2)

示例:

复制代码
lst1=[10,20,30,40]
lst2=['cat','dog','yoon','hank']
result=zip(lst1,lst2) # 映射函数的结果是zip对象
print(result)

print(list(result)) # 通过列表方式获取zip对象结果

d=dict(result)
print(d)
复制代码

通过给定关键字创建字典

dict(key1=value1,key2=value2,....)

示例:
使用参数创建字典

d=dict(cat=10,dog=20,yoon=30,hank=40) # 参数相当于变量,变量的名字不需要加引号,指的是:cat,dog,yoon,hank
print(d)

字典的删除

del d

字典元素的访问

d[key]或d.get(key)

示例:

复制代码
d={'hello':10,'yoon':20,'python':30}
# 访问字典中元素
#(1) 使用[key]
print(d['yoon'])

#(2) 使用d.get(key)
print(d.get('yoon'))

# 二者之间有区别,如果键不存在时,d[key]报错,使用d.get(key)可以指定默认值
#print(d['java']) # 报错,无java

print(d.get('java')) # 输出None,不报错
print(d.get('java','不存在'))
复制代码

字典元素的遍历

for element in d.items():    for key,value in d.items():
    pass                         pass

示例:

复制代码
for item in d.items():
    print(item)  # 结果是元组类型
输出结果:
('hello', 10)
('yoon', 20)
('python', 30)

# 在使用for循环,分别获取键和值
for key,value in d.items():
    print(key,value)

输出结果:
hello 10
yoon 20
python 30
复制代码

字典的相关操作

d.keys()    获取所有key
k.values()  获取所有value
d.pop(key,default) key存在获取相应的value,同时删除key-value对,否则获取默认值
d.popitem() 随机从字典中获取一个key-value对,结果为元组类型,同时将该key-value从字典中删除
d.clear()   清空字典中所有的key-value对

示例:

复制代码
d={1001:'李梅',1002:'王华',1003:'张三'}
print(d)
# 向字典添加数据
d[1004]='李四'
print(d)

# 获取字典所有key
keys=d.keys()
print(keys)
# 转换列表或元组
print(list(keys))
print(tuple(keys))

value=d.values()
print(value)

# pop函数
print(d.pop(1001))  # 先获取李梅,再删除李梅
print(d)

# 随机删除
print(d.popitem()) # 随机删除
print(d)

# 清空字典中所有元素
d.clear()
print(d)
复制代码

字典生成式
使用指定范围的数作key

d={key:value for item in range}

使用映射函数生成字典

d={key:value for key,value in zip(lst1,lst2)}

 

posted @   __Yoon  阅读(197)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示