Python中字典(dict)的操作

字典没有索引 使用key进行定位
字典中的每个key一定是唯一的
字典中的元素数量没有限制
字典中的value可以是任何Python中的内置数据类型和自定义对象

 修改/添加元素取决于字典中存不存在这个key

# coding:utf-8

info_dict = {'name': '白泽'}

info_dict['name'] = '上神'
info_dict['age'] = 20

print(info_dict)

运行结果:

{'name': '上神', 'age': 20}

 

update(new_dict)

添加新的字典,如果新字典中有和原字典中key相同的元素,则原字典key的value就会被覆盖掉

# coding:utf-8

info_dict = {'name': '白泽'}

new_dict = {'name': '白泽上神', 'age': 20}
info_dict.update(new_dict)

print(info_dict)

运行结果:

{'name': '白泽上神', 'age': 20}

 

setdefault(key,value)

获取某个key的value,如果key不存在,则将会添加key并将value设为默认值,如果存在则value不起作用

# coding:utf-8

info_dict = {'name': '白泽'}

value = info_dict.setdefault('name', '白泽上神')
print(info_dict, value)
value = info_dict.setdefault('age', 20)
print(info_dict, value)

运行结果:

{'name': '白泽'} 白泽
{'name': '白泽', 'age': 20} 20

 

keys()

获取当前字典中所有的键,返回一个key集合的伪列表

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

print(info_dict.keys())  # 获取伪列表 无法处理数据 无法使用列表的操作
print(list(info_dict.keys()))  # 获取真列表

运行结果:

dict_keys(['name', 'age'])
['name', 'age']

values()

获取当前字典中所有键值对的value,返回一个value集合的伪列表

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

print(info_dict.values())
print(list(info_dict.values()))

运行结果:

dict_values(['白泽', 20])
['白泽', 20]

 

get(key,default=None)  dict[key]

获取key的value 如果key不存在则返回default的值,default可以自定义

通过get获取如果key不存在则返回默认值

通过[]获取如果key不存在则会报错

开发中优先使用get

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

print(info_dict.get('name'))
print(info_dict.get('work', '学生'))

运行结果:

白泽
学生

 

字典的删除

clear()

用法:dict.clear()

清空当前字典中所有的数据 

pop(key)

用法:value = dict.pop(key)

删除字典中指定的key,并将其结果返回,如果key不存在则报错

del
用法:del dict[key]

删除整个字典 del dict

 

copy()

将当前字典复制给一个新的字典,内存地址不同

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}
new_dict = info_dict.copy()

print(info_dict, id(info_dict))
print(new_dict, id(new_dict))

运行结果:

{'name': '白泽', 'age': 20} 2446998693504
{'name': '白泽', 'age': 20} 2446998694784

 

使用成员运算符判断key是否存在 in 、 not in(优先使用)

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

print('age' in info_dict)
print('age' not in info_dict)

运行结果:

True
False

使用get判断成员是否存在(存在问题:获取的是value,如果value = None 则返回False(不推荐使用))

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

print(bool(info_dict.get('name')))
print(bool(info_dict.get('work')))

运行结果:

True
False

 

popitem()

删除当前字典里末尾的一组键值对并将其返回
返回被删除的键值对,用元组包裹 索引0是key 索引1是value
如果字典为空则报错

# coding:utf-8

info_dict = {'name': '白泽', 'age': 20}

age = info_dict.popitem()
print(age)
print(age[0], age[1])

运行结果:

('age', 20)
age 20

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值