字典类型是根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成的成对关系。

字典是可变序列。

字典中的元素是无序的

字典的键必须唯一,不能有重复;但是值可以出现重复。

字典中的键要求是不可变序列。字符串,整数,浮点数,元组都可以作为字典的键。

字典类型的创建方式

1)使用{}直接创建字典

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

2)使用内置函数dict()创建字典

 语法结构:

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

还可以通过映射函数创建字典,最后使用dict()函数转换一下

zip(lst1,lst2)  #lst1中的值做键,lst2中的值做值,一一对应

删除字典

del 字典名
#使用{}创建字典 当有两个相同的键时,最后的值会覆盖前面的值
d={1:'hello',2:'world',3:'python',2:'welcome'}
print(d)

#zip函数来创建 需要使用dict函数转换
lst1=[10,20,30,40]
lst2=['cat','dog','tiger','lion','dragon']
zipobj=zip(lst1,lst2) #当两个列表中元素个数不一致时,以数量少的那个为准。其中前面的列表中的值为键,后面的列表中的值为值
print(type(zipobj)) #是一个zip对象
#print(list(zipobj))
#zip对象需要通过dict函数转换一下
d=dict(zipobj)
print(d)

#使用dict函数
d=dict(cat=10,dog=20,tiger=30)
print(d)

t=(10,20,30)
print({t:10})  #可以使用元组作为字典的键,但不能用列表作为键


print('字典的长度',len(d))
print('字典的最大值',max(d))
print('字典的最小值',min(d))

#删除字典
del d

字典的key是无序的,python3.5及以前版本都是无序的,python3.6版本进行处理,看到是“一致的”。

字典元素的取值

d[key]或d.get(key) #d为字典名

注意:当key存在时,使用两种方式都可以访问;当key不存在,d[key]访问直接报错,d.get(key)会返回None

字典的遍历

1)遍历出key或value的元组

for element in d.items():
    pass

2)分别遍历出key和value

for key,value in d.items():
    pass
d={'hello':10,'world':20,'python':30}
print(d)

#通过d[key]访问
print(d['hello'])
# print(d[10]) key不存在时报错

#通过d.get(key)访问
print(d.get('hello'))
print(d.get(10)) #key不存在时,返回None

# 遍历出key或value的元组
for item in d.items():
    print(item) #结果为key和value组成的一个元组

# 遍历出key,value
for key,value in d.items():
    print(key,value)

字典的相关操作方法

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

 

 

 

 

 

 

 

d={10:'cat',20:'dog',30:'tiger'}
print(d)

#向字典中添加元素
d[40]='lion'  #直接通过赋值的方式添加新的元素
print(d)

# 获取字典中的所有key
keys=d.keys()
print(keys,type(keys))
print(list(keys))  #可以转换为列表
print(tuple(keys)) #可以转换为字典


# 获取字典中所有的value
values=d.values()
print(values,type(values))
print(list(values))  #可以转换为列表
print(tuple(values)) #可以转换为元组

# list函数将字典的内容转换为键值对形式
lst=list(d.items())
print(lst)  #[(10, 'cat'), (20, 'dog'), (30, 'tiger'), (40, 'lion')]

# 将键值对形式的列表转换为字典
new_d=dict(lst)
print(new_d)  #{10: 'cat', 20: 'dog', 30: 'tiger', 40: 'lion'}

# 使用pop函数,先将对应的值取出来,然后再将其删除掉,如果key不存在则报错,设置一个返回默认值则不会报错
print(d.pop(30))
print(d)

print(d.pop(50,'不存在')) #该key不存在,并返回一个默认值
print(d)

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

#清空字典
d.clear()
print(d)

print(bool(d)) #空字典的布尔值为False

字典生成式

d={key:value for i in range}
d={key:value for key,value in zip(lst1,lst2)}
#字典生成式
import random

#方式1
d={item:random.randint(1,100) for item in range(5)}
print(d)

#方式2
lst1=[10,20,30]
lst2=['hello','world','python']
d={k:v for k,v in zip(lst1,lst2)}
print(d)

 

 posted on 2023-12-12 22:36  会飞的金鱼  阅读(33)  评论(0)    收藏  举报