1、字典类型
key-键;value-值。这两者构成了一个键值对
字典是可变数据类型,具有增、删、改等一些的操作。
字典中的键要求是不可变序列,可以为整数、浮点、字符串、元组等不可变数据类型。但列表不行,列表为可变数据类型。(使用列表,会报错TypeError: unhashable type: 'list')
#(1)创建字典
d={10:'cat',20:'dog',30:'pet',20:'zoo'}
print(d)#当key相同时,value值会进行了覆盖
#(2)zip函数
lst1=[10,20,30,40]
lst2=['cat','dog','pet','zoo','car']
zipobj=zip(lst1,lst2)
print(zipobj)#<zip object at 0x000002328948FE00>
#print(list(zipobj))#[(10, 'cat'), (20, 'dog'), (30, 'pet'), (40, 'zoo')]
#使用dict函数
d=dict(zipobj)
print(d)#{10: 'cat', 20: 'dog', 30: 'pet', 40: 'zoo'}
#使用参数创建字典
d=dict(cat=10,dog=20)#左侧cat是key,右侧是value
print(d)
#使用元组
t=(10,20,30)
print({t:10})#t是key,10是value,元组可以作为字典中的键
#使用列表,会报错TypeError: unhashable type: 'list'
# lst=[10,20,30]
# print({lst:10})
#字典属于序列
print('max:',max(d))
print('min:',min(d))
print('len:',len(d))
#字典的删除
del d
2、字典元素的访问及遍历
d={'hello':10,'world':20,'puython':30}
#访问字典的元素
#(1)使用d[key]
print(d['hello'])
#(2)d.get(key)
print(d.get('hello'))
#二者之间的区别,如果key不存在,d[key]报错;d.get(key)可以指定默认值
# print(d['java'])#KeyError: 'java'
print(d.get('java'))#None
print(d.get('java','不存在'))#指定默认值为“不存在”
#字典的遍历
for item in d.items():
print(item)#有key=value组成的一个元组类型
#在使用for循环遍历时,分别获取key,value
for key,value in d.items():
print(key,value)
3、字典的相关操作
c={1:'东',2:'西',3:'南',4:'北'}
print(c)
#向字典中添加元素
c[5]='左'#直接使用赋值运算符向字典中添加元素
print(c)
#获取字典中所有的键
keys=c.keys()
print(keys)#获得了一个对象:dict_keys([1, 2, 3, 4, 5])
print(list(keys))#转换为列表类型
print(tuple(keys))#转换为元组类型
#获取字典中的所有的value
values=c.values()
print(values)#dict_values(['东', '西', '南', '北', '左'])
print(list(values))
print(tuple(values))
#如何将字典中的数据转成key-value的形式,以元组的方式进行展现
lst=list(c.items())
print(lst)
#转换为字典类型
c=dict(lst)
print(c)
#使用pop函数删除元素
print(c.pop(1))#将元素取出
print(c)#查看删除后的字典
#删除不存在的值,可以设置一个默认值
print(c.pop(1,'不存在'))
#随机删除
print(c.popitem())#查看随机删除了那个元素
print(c)#查看删除后的字典
#清空后的所有元素
c.clear()
print(c)
#python中一切皆对象,每个对象都有一个布尔值
print(bool(c))#空字典的布尔值为False
3、字典的生成式
import random
d={item:random.randint(1,100) for item in range(4)}
#以0、1、2、3作为键;以1-100的随机数作为值
print(d)
#创建俩个列表
lst=[1001,1002,1003]
lst2=['东','南','西']
d={key:value for key,value in zip(lst,lst2)}
print(d)