======================================基本使用======================================
1、用途: 用来存方多个(不同种类的)值
2、定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来
描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int\float\str\tuple)
定义:d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict(....)
d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict(....)
print(d[(1, 2, 3)])#元组是不可变类型
# d1={[1,2,3]:'aaaaa'}#字典的key不可以可变类型,列表是可变类型
#aaa
字典的转换
d=dict([('k1',1),('k2',2),('k3',3)])
print(d)
#{'k1': 1, 'k2': 2, 'k3': 3}
d=dict(x=1,y=2,z=3)
print(d)
#{'x': 1, 'y': 2, 'z': 3}
# 3、常用操作+内置的方法
#优先掌握的操作:
#1、按key存取值:可存可取
d = {'x':1}
print(d['x'])
d['x']=111
print(d)
d['y']=222
print(d)
#1
#{'x': 111}
#{'x': 111, 'y': 222}
2、长度
d={'x':1,'y':2,'z':3}
print(len(d))
#3
3、成员运算 in 或not in 判断是字典的key而不是value
d = {'x':1, 'y':2,'z':3}
print('x' in d)
print(3 not in d)
#True
#True
4、删除
pop popitem
pop指定关键字删除,popitem
#删除 pop popitem
d={'x':1,'y':2,'z':3}
print(d.pop('x'))
print(d)
# 随机删
print(d.popitem())
print(d)
#1
#{'y': 2, 'z': 3}
#('z', 3)
#{'y': 2}
5、keys ,values items
keys,value与items生成对象在类似列表的内容
d={'x':1,'y':2,'z':3}
print(d.keys())
print(d.values())
print(d.items())
# dict_keys(['x', 'y', 'z'])
#dict_values([1, 2, 3])
#dict_items([('x', 1), ('y', 2), ('z', 3)])
6.for循环
字典的keys
d={'x':1,'y':2,'z':3}
# print(d.keys())
# print(d.values())
# print(d.items())
#x
#y
#z
其实等价于:
d={'x':1,'y':2,'z':3}
for k in d:
print(k)
字典的value
d={'x':1,'y':2,'z':3}
for v in d.values():
print(v)
#1
#2
#3
字典的item(keys和values)
d={'x':1,'y':2,'z':3}
for k,v in d.items():
print(k,v)
#x 1
#y 2
#z 3
======================================该类型总结====================================
r存多个值
无序
可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash
=====================================需要掌握的操作===================================================
get方法 取出对应key的value
# get方法 取出对应key的value
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
v=d.get('namexxxxxxx')#不会报错,只是返回None
print(v)
# v1=d['namexxxxxxxxxxx']#这种方法取值,若没有相应的关键字则会报错
# print(v1)
#None
update方法
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
d.update({'x':1,'name':"EGON"})#update更新,老字典中没有的内容添加,有的内容依照新字典的内容更改
print(d)
#{'name': 'EGON', 'age': 18, 'sex': 'male', 'hobbies': [1, 2, 3], 'x': 1}
fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
keys=['name','age','sex']
#等效于for循环生成一个字典
# d={}
# for k in keys:
# d[k]=None
d={}.fromkeys(keys,None)
print(d)
#{'name': None, 'age': None, 'sex': None}
#常用于生成想要的初识格式的字典
setdefault
# 按照setdefault的形式
d={"x":1,"y":2}
res=d.setdefault('x',11111) # 在key存在的情况下不修改值,会返回原值
print(d)
print(res)
# res=d.setdefault('z',11111) # 在key不存在的情况下会新增值,会返回新增的值
print(d)
print(res)
#{'x': 1, 'y': 2}
#1
#{'x': 1, 'y': 2}
#1