字典
python内置的数据结构之一,与列表一样是一个可变序列(可变序列的意思是可以进行增删改的操作的序列)
以键值对的方式存储数据,字典是一个无序的序列(有序序列是序列会将元素按填入顺序,有序排序,比如列表。而无序序列则不会按照填入顺序将元素填入序列,比如字典。)
例:
zidian={"张三":100,"李四":40,"王五":50}
字典名 花括号 逗号 键 冒号 值
字典的键不可改变
key不可以重复,value可以重复 #若键重复,那么前面的键的值会被覆盖
字典是由花括号包裹的元素的序列,冒号前面是键,后面是值,成对出现,称为键值对,由逗号分开每一份键值对
字典的创建方式:
一:最常用方式,使用花括号{}
hua={"张三":100,"李四":66,"王五":88}
print(hua)
二:使用内置函数dict()
dict(name="jack",age=20) 使用方式
wei=dict(name="jack",age=20) #将字典赋值给wei变量
print(wei) #打印字典
空字典
d={}
获取字典元素
第一种方式,使用[]
"""获取字典元素"""
hua={"张三":100,"李四":66,"王五":88}
第一种方式,使用[]
print(hua['张三'])
print(hua["陈六"]) #若字典里没有这个键,则输出:KeyError: '陈六'
第二种方式,使用get()方法
hua={"张三":100,"李四":66,"王五":88}
print(hua.get("张三"))
print(hua.get("陈六")) #若字典里没有这个键,则输出None
print(hua.get("麻七",99)) #99是在查找麻七时,若所对的value值不存在时,提供的一个默认值
两种获取字典元素的方式差别就在于,想要查找的键在字典里不存在时,输出的方式不同
使用[]获取字典元素,若字典里没有这个键,则抛出异常:KeyError: '陈六'
使用get()获取字典元素,若字典里没有这个键,则不会抛出异常,而是返回None值,可以通过参数设置默认的value,以便指定的key不存在时返回
"""字典的常用操作"""
key的判断
"""
in 指定的key在字典中存在就返回True 使用方式:"张三" in hua #张三在hua这个字典里,在就返回True,不在就返回False
not in 指定的key在字典中不存在返回True 使用方式:"Marry" not in hua
"""
hua={"张三":100,"李四":66,"王五":88}
print("张三" in hua )
print("Marry" not in hua)
字典元素删除
del hua["张三"] #删除指定键的键值对
print(hua)
字典元素的新增
hua={"张三":100,"李四":66,"王五":88}
hua["Jack"]=90
print(hua)
修改字典里的元素
hua={"张三":100,"李四":66,"王五":88}
hua["王五"]=66
print(hua)
清空字典
hua={"张三":100,"李四":66,"王五":88}
hua.clear()
print(hua)
获取字典视图的三个方法
keys() 获取字典所有key
values() 获取字典中的所有value
items() 获取字典中所有key,value对
获取该字典所有的键
hua={"张三":100,"李四":66,"王五":88}
keys1=hua.keys() #将该字典所有键赋值给keys1
print(keys1) #输出所有的键
print(type(keys1)) #查看该变量类型
print(list(keys1)) #将所有的key组成的视图转成列表
获取该字典所有的value值
hua={"张三":100,"李四":66,"王五":88}
value1=hua.values()
print(value1)
print(type(value1))
print(list(value1)) #将值打印成列表
获取所有的键值对
hua={"张三":100,"李四":66,"王五":88}
items1=hua.items()
print(items1)
print(type(items1))
print(list(items1)) #将键值对打印成列表,转换之后的列表元素是由元组组成的
字典元素的遍历
hua={"张三":100,"李四":66,"王五":88}
for item in hua:
print(item) #打印item这个存储对象默认是依次输出键
print(hua.get(item)) #依次根据遍历出来的键输出相应的值
print(hua[item]) #根据键,输出相对应的值
print(item,hua.get(item),hua[item]) #可以同行打印
字典生成式
items=["Fruits","Books","Others"]
prices=[96,77,85,100,120]
d={item:price for item,price in zip(items,prices)}
d={item.upper():price for item,price in zip(items,prices)} #在item后加upper()函数可以让输出的键为大写
print(d)