目录
字典:
键值对形式,无序,{key,value} key可以使字符串类型和数字类型,不能是列表。value 可以是任何类型。
最常用方式:使用花括号
scores={‘张三’:100,‘李四’:20,‘王五’:48}
使用内置函数dict()
dic(name='jack',age=200)加不加引号取决于数据类型
取出字典中的值和类型
scores={'张三':100,'李四':90}
keys=scores.keys()
print(keys)
values=scores.values()
print(values)
#取出字典中数据方法
#print(scores.values())
#字典.get(key)
print(scores.get('gender'))#如果key值不存在.get方法不会报错,只会输出none
#scores.get(key,数据值) 如果key值不存在,则返回数据值
print(scores.get('gender','男'))
items=scores.items()
print(items)
print(list(items))
字典的增加和修改:
dict = {'name':'张三'}
print(dict)
#字典中根据key值进行添加和修改数据
#若key值存在,则数据进行修改,若不存在,数据进行添加
dict['age'] = 18#ke值不存在,添加数据
print(dict)
dict['age'] =90#key值存在,修改数据
print(dict)
#注意:key值int的1和float的1.0相等
dict[1] = "int"
print(dict)
dict[1.0] = 'float'
print(dict)
字典的删除:
dict = {'name':'张三','age':19,'addr':'烟台'}
#根据key值删除数据 del字典名[key]
del dict['name']
print(dict)
#字典名.pop(key) 根据key值删除,返回值是对应value值
result = dict.pop('age')
print(dict)
print(result)
#字典名.clear() 清空字典,删除所有的键值对
dict.clear()
print(dict)
#del 字典名 直接将整个字典删除,后续代码不能继续使用这个变量名
del dict
字典的遍历
1.for循环
遍历字典中的键和值都需要用到FOR语句,for循环遍历的是字典的key值
dict = {'name':'张三','age':20,'addr':'蓬莱'}
for i in dict:
print(i)
2.字典.keys()
dict = {'name':'张三','age':19,'addr':'烟台'}
#字典.keys()获取字典中所有的key值,得到的类型是dict_keys,该类型具有的特点是
#1.可以使用list()进行类型转换,即将其转换成列表类型
#2.可使用for循环,即可迭代
result = dict.keys()
print(result,type(result))
for key in result:
print(key)
3.字典.values()
dict = {'name':'张三','age':19,'addr':'烟台'}
#字典.values() 获取所有的value值,得到的数据是dict_value类型,特点是
#1.可以使用list()进行类型转换,即将其转换成列表类型
#2.可使用for循环,即可迭代
for value in dict.values():
print(value)
4.字典.items()
dict = {'name':'张三','age':19,'addr':'烟台'}
#字典.items() 获取所有键值对,类型是dict_items key value组成元组类型
#1.可以使用list()进行类型转换,即将其转换成列表类型
#2.可使用for循环,即可迭代
result = dict.items()
print(result,type(result))
for item in dict.items():
print(item[0],item[1])
#拆包
for k,v in dict.items():
print(k,v)
字典的特点
字典中,键不可以重复,值可以重复;
字典中的元素都是无序的;
字典中的key必须是不可变对象;
字典也可以根据需要动态的伸缩;
字典会浪费较大内存,是一种使用空间换时间的数据结构
字典生成式
当键的数量和值的数量不一致时,以少的为准。
items=['Fruits','Book','Others']prices=[96,78,45]d={item.upper():price for item,price in zip(items,prices)}print(d)