4.4 数据类型内置方法_可变类型(2)_字典
4.4 数据类型内置方法_可变类型(2)_字典
4.4.1 字典类型
-
作用:列表存储元素过多,存取困难,所以引入字典;key对值一般具有描述意义,value可以是任意数据类型的值。
-
定义方式:{}内以键值对:'key:value'的形式存储多个值
-
方法:
- 方法1***
#(1)按key存取值可以存可以取
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
info['height']+=1
info['age']=25
print(info)
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351003456,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
{'name': 'coco', 'height': 186, 'weight': 140, 'hobby_list': ['read', 'run', 'run'], 'age': 25}
操作后:id:1603351003456,info:{'name': 'coco', 'height': 186, 'weight': 140, 'hobby_list': ['read', 'run', 'run'], 'age': 25}
#(2)长度len
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(len(info))
4
#(3)成员运算 in/not in,比较的是key
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print('height' in info)
True
#(4)del 删除
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
del info['height']
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351232256,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
操作后:id:1603351232256,info:{'name': 'coco', 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
#(5)keys(),输出所有key
# values(),输出所有值
# items(),输出所有键值对
#把所有输出值当成列表
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(info.keys(),type(info.keys()))
print(info.values())
print(info.items())
dict_keys(['name', 'height', 'weight', 'hobby_list']) <class 'dict_keys'>
dict_values(['coco', 185, 140, ['read', 'run', 'run']])
dict_items([('name', 'coco'), ('height', 185), ('weight', 140), ('hobby_list', ['read', 'run', 'run'])])
#(6)循环
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
for i in info:
print(i) #输出key
print('-'*100)
for i in info.values():
print(i)
print('-'*100)
for i in info.items():
print(i) #以元组形式输出
print('-'*100)
for i,j in info.items():
print(i,j) #解压缩
print('-'*100)
name
height
weight
hobby_list
----------------------------------------------------------------------------------------------------
coco
185
140
['read', 'run', 'run']
----------------------------------------------------------------------------------------------------
('name', 'coco')
('height', 185)
('weight', 140)
('hobby_list', ['read', 'run', 'run'])
----------------------------------------------------------------------------------------------------
name coco
height 185
weight 140
hobby_list ['read', 'run', 'run']
----------------------------------------------------------------------------------------------------
- 方法2 **
#(1)get(key) 如果key不存在,返回none,不会报错
# get(key,x) key不存在用给定默认值x填充
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
print('-'*100)
print(info.get('height'))
print(info.get('heigh','f'))
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351023296,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
----------------------------------------------------------------------------------------------------
185
f
操作后:id:1603351023296,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
#(2)update,有就更新,没有就追加。
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
dict={'a':'A','b':'B','c':'C','weight':150}
info.update(dict)
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351025344,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
操作后:id:1603351025344,info:{'name': 'coco', 'height': 185, 'weight': 150, 'hobby_list': ['read', 'run', 'run'], 'a': 'A', 'b': 'B', 'c': 'C'}
#(3)fromkeys(list,x),不常用
# 将list内的·元素当成键,取出来用x赋值不改变原来的字典
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
print('-'*100)
info.fromkeys([1,2,3],5)
print(info.fromkeys([1,2,3],5))
print('-'*100)
print(info.fromkeys(['name','height'],5))
print('-'*100)
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351033152,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
----------------------------------------------------------------------------------------------------
{1: 5, 2: 5, 3: 5}
----------------------------------------------------------------------------------------------------
{'name': 5, 'height': 5}
----------------------------------------------------------------------------------------------------
操作后:id:1603351033152,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
#(4)setdefault,
# 如果字典中有该key的话,则key对应值不变;没有则追加,改变原来字典。
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
print(f'操作前:id:{id(info)},info:{info}')
print('-'*100)
info.setdefault('a','A')
print(info)
print('-'*100)
info.setdefault('height','A')
print(info)
print('-'*100)
print(f'操作后:id:{id(info)},info:{info}')
操作前:id:1603351026240,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run']}
----------------------------------------------------------------------------------------------------
{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run'], 'a': 'A'}
----------------------------------------------------------------------------------------------------
{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run'], 'a': 'A'}
----------------------------------------------------------------------------------------------------
操作后:id:1603351026240,info:{'name': 'coco', 'height': 185, 'weight': 140, 'hobby_list': ['read', 'run', 'run'], 'a': 'A'}
#(5)pop运算
info={'name':'coco',
'height':185,
'weight':140,
'hobby_list':['read','run','run']}
info.pop()
- 存储一个值或多个值:多个值,值可以是多个类型,key是不可变类型,通常是字符串。
- 有序 or 无序:无序,按键取值
- 可变or不可变:可变
浙公网安备 33010602011771号