字典类型内置方法
dict(掌握)
用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。
-
定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。
dic = {'a':1,'b':2} print(f"dic:{dic}") dic:{'a': 1, 'b': 2}
dic = dict(a=1,b=2,c=3) print(f'dic:{dic}') dic:{'a': 1, 'b': 2, 'c': 3}
dic = {1:'j',2:'z',3:'d'} print(f'dic:{dic[1]}') print(f'dic:{dic[1]}') # 无法区分dic是列表,还是字典,并且key不再具有描述信息 dic:j dic:j
dic = {[1,2]:'a',0:'b'} # 报错
常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。
优先掌握
-
按key存取值:可存可取
dic = {1:'jin',2:'dnf',3:'lol'} print(f'dic[2]:{dic[2]}') print(f'dic[3]:{dic[3]}') dic[2]:dnf dic[3]:lol
-
长度len
dic = {1:'jin',2:'dnf',3:'lol'} print(f'len(dic):{len(dic)}') len(dic):3
-
成员运算in和not in
dic = {1:'jin',2:'dnf',3:'lol'} print(f'1 in dic:{1 in dic}') print(f"'jin' in dic:{'jin' in dic}") 1 in dic:True 'jin' in dic:False
-
删除del
dic = {1:'jin',2:'dnf',3:'lol'} del dic[1] print(f'del.dic:{dic}') del.dic:{2: 'dnf', 3: 'lol'}
-
键keys()、值values()、键值对items()
# 键keys() dic = {1:'jin',2:'dnf',3:'lol'} print(f'dic.keys():{dic.keys()}') dic.keys():dict_keys([1, 2, 3])
# 值values() dic = {1:'jin',2:'dnf',3:'lol'} print(f'dic.values():{dic.values()}') dic.values():dict_values(['jin', 'dnf', 'lol'])
# 键值对items() dic = {1:'jin',2:'dnf',3:'lol'} print(f'dic.items():{dic.items()}') dic.items():dict_items([(1, 'jin'), (2, 'dnf'), (3, 'lol')])
-
循环
dic = {1:'jin',2:'dnf',3:'lol'} for k,v in dic.items() : print(f'k,v :{k,v}') k,v :(1, 'jin') k,v :(2, 'dnf') k,v :(3, 'lol')
需要掌握
-
get 输出对于键key中的值value,如果键不存在,返回None,不会报错;
如果键不存在,可以给定默认值
dic = {1:'jin',2:'dnf',3:'lol'} print(f'dic.get(2):{dic.get(2)}') print(f'dic.get(6):{dic.get(6)}') dic.get(2):dnf dic.get(6):None
-
update 有就更新,没有则添加
dic = {1:'jin',2:'dnf',3:'lol'} dic2 = {4:'wzry',3:'lol'} dic.update(dic2) print(f'dic.update(di2){dic}') dic.update(di2){1: 'jin', 2: 'dnf', 3: 'lol', 4: 'wzry'}
-
fromkeys 默认把给定列表内的元素取出来当成key,然后使用一个默认value新建一个字典
dic = dict.fromkeys(['a','b','c'],None) print(f'dic:{dic}') Process finished with exit code 0
-
setdefault 如果字典中有该key的话,则key对应的值不变;如果没有,则增加
dic = {'a': 1,'b': 2,'c': 3} print(f"dic.setedfault('a'):{dic.setdefault('a')}") print(f"dic.setdefault('d',3):{dic.setdefault('d',3)}") print(f"dic:{dic}") dic.setedfault('a'):1 dic.setdefault('d',3):3 dic:{'a': 1, 'b': 2, 'c': 3, 'd': 3}
存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型
- 有序or无序:无序
可变or不可变:可变数据类型