字典内置方法
字典
基本形式
花括号括起来的用逗号隔开的k:v键值对形式,其中key是对v的描述性数据,一般是字符串,v是真实数据,可以是任意类型数据。
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
类型转换(dict()):将其余类型的数据转换为字典类型
字典在类型转换方面的作用不大,因为它使用与其他类型的方法,转换数据类型是行不通的。下面有两种转换数据为字典的方法,供参考。
- 在dict关键字里用赋值形式的方式进行转换,赋值符左边作为key,右边为key对应的值
print(dict(name = 'oliver', hobby = 'music')) # name对应的值是oliver,hobby对应的值是read.
- 在dict关键字里用列表套列表或者元组的形式,每对应的两个元素成一个列表或者元组。
print(dict([['name', 'oliver'],['hobby', 'music']]))
print(dict([('name', 'oliver'),('hobby', 'music')]))
按key取值:索引取值、get()
字典里的真实数据(v)是用key来访问的。访问的方式分两种。
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
# 方式一
print(dict_name['hobby']) # key键作为索引取key键对应的数据
print(dict_name['add']) # key不存在时会直接报错
# 方式二
print(dict_name.get('name')) # 用get进行索引取值
print(dict_name.get('add')) # 用get进行索引取值,key不存在时默认会输出None
print(dict_name.get('add', '数据不存在')) # 用get进行索引取值,key不存在时会输出第二个参数
修改字典(可变类型)的数据
dict_name = {'name': 'oliver', 'hobby': 'music', 'age': 23}
dict_name['age'] = 25 # 键存在时将key键所对应的数据进行更改
dict_name['add'] = 'shanghai' # 键不存在时将key键和对应数据进行添加
print(dict_name)
统计字典里的元素个数:len()
dict_name = {'name': 'oliver', 'hobby': 'music', 'age': '23'}
print(len(dict_name)) # 统计字典中k:v键值对的个数
成员运算: in 判断key键是否在字典中,返回布尔值
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
print('add' in dict_name) # False
print('name' in dict_name) # True
删除键值对:del 、pop()
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
# 方式一 :del 直接删除
del dict_name['name'] # 删除键值对,不过与列表一样,不返回值,在字典内部删除
print(dict_name)
# 方式二 :pop 弹出.与列表相同,”先奸后杀“
print(dict_name.pop('name')) # 打印要删除的数据
print(dict_name) # 打印删除后的字典
- 方式一
- 方式二
获取所有的键(key)、值(value)、键值对(items)
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
# 获取键:keys
print(dict_name.keys()) # 获取所有键
#获取值:values
print(dict_name.values()) # 获取所有值
# 获取键值对:items
print(dict_name.items()) # 获取所有键值对
注:python3中用上述方法所获取到的数据存放在列表中,而python2中是直接用获取到的数据生成一个列表
更新字典:update()
dict_name = {'name':'oliver', 'hobby':'music', 'age':'23'}
# update 的功能是把已经存在的键的数据进行更改,把不存在的键的k:v键值对加到末尾
dict_name.update({'add':'上海','salary':32 ,'name':'kitty'})
print(dict_name)
快速生成字典:fromkeys()、zip()
# 方式一:使用fromkeys快速生成字典时,values必须是不可变类型数据(多(索引值)对一(数据)),即多个key键指向同一真实值储存空间。
dict_name = dict.fromkeys(['pond', 'franc', 'money', 'dollars'], [])
print(dict_name)
# 方式二: 多对多 zip:可以依次配对,多余数据就不配对,key键和value个数相同
dict_name = dict(zip(['pond', 'franc', 'money', 'dollars'], ['英镑', '法郎', '钱', '美元']))
print(dict_name)
# 个数验证
dict_name = dict(zip(['pond', 'franc', 'money', 'dollars'], ['英镑', '法郎', '法郎', '钱', '美元']))
print(dict_name)
筛查:setdefault()
dict_name = {'name': 'oliver', 'hobby':'music'}
print(dict_name.setdefault('age', 23)) # 键不存在则新增键值对 并且有返回结果是新增的v
print(dict.name)
print(dict.name.setdefault('hobby', 'read')) # 键存在 则返回对应的值 不做修改
print(dict.name)

浙公网安备 33010602011771号