date: 2021-06-12title: Python之字典 #标题
tags: python #标签
categories: python # 分类
创建字典
# 第一种创建方式
dic1 = dict((('one', 1), ('two', 2), ('three', 3)))
print(dic1)
# 第二种创建方式
dic2 = dict(one=11, two=22, three=33)
print(dic2)
# 第三种创建方式
dic3 = dict({'name': '张三', 'age': 10, 'sex': '男'})
print(dic3)
# 基于第三种方式不太正规的写法
info = {'老大': {'name': '张三', 'age': '18', 'sex': '男'}, '朋友': ['李四', '王五', '赵四']}
print(info['朋友'])
# 输出如下:
{'one': 1, 'two': 2, 'three': 3}
{'one': 11, 'two': 22, 'three': 33}
{'name': '张三', 'age': 10, 'sex': '男'}
['李四', '王五', '赵四']
字典的增删改查
增
dic = dict({'name': '张三', 'age': 10, 'sex': '男'})
dic['hobby'] = '打篮球' # 默认有则改之,无则追加
# setdefault:有则不变,无则追加
dic.setdefault('age', 22)
dic.setdefault('身高', '180mm')
print(dic)
# 输出如下:
{'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'}
删
################ pop删除 ################
dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
dic.pop('身高') # 默认如果有此键即删除,没有就会报错
# pop可以设置第二个参数,如果有则删除并返回删除的value,如果没有此key则返回第二个参数
# 此方式适用于你不确定这个字典中有没有这个key时使用
print(dic.pop('姓名', '没有此键'))
print(dic.pop('name', '没有此键'))
print(dic)
# 输出如下
没有此键
张三
{'age': 10, 'sex': '男', 'hobby': '打篮球'}
################ clear清空 ################
dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
dic.clear() # 清空字典中所有内容
print(dic)
################ del删除指定key(不推荐使用) ################
dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
del dic['name']
print(dic)
改
dic = dict({'name': '张三', 'age': 10})
dic['name'] = '赵四'
print(dic)
# 输出如下
{'name': '赵四', 'age': 10}
查
1、查key对应的value
# 方式一(不推荐)
dic = dict({'name': '张三', 'age': 10, 'hobby_list': ['开车', '骑行', '跑步', '美女']})
print(dic['hobby_list'])
print(dic['hobby_list'][2])
# 输出如下
['开车', '骑行', '跑步', '美女']
跑步
# 方式二(使用get方法,推荐)
dic = dict({'name': '张三', 'age': 10, 'hobby_list': ['开车', '骑行', '跑步', '美女']})
print(dic.get('name'))
print(dic.get('name', '没有此键'))
print(dic.get('身高', '没有此键'))
# 输出如下
张三
张三
没有此键
两种方式的区别在于,如果字典中没有这个键,方式一就会报错,但方式二,通过get方法,可以设置默认返回值,如果没有查到对应的键,则会返回默认值。
2、查所有的key
dic = dict({'name': '张三', 'age': 10, 'hobby_list': ['开车', '骑行', '跑步', '美女']})
print(dic.keys())
# 输出如下
dict_keys(['name', 'age', 'hobby_list'])
3、查询所有的value
dic = dict({'name': '张三', 'age': 10, 'hobby_list': ['开车', '骑行', '跑步', '美女']})
print(dic.values())
# 输出如下:
dict_values(['张三', 10, ['开车', '骑行', '跑步', '美女']])
4、迭代字典
dic = dict({'name': '张三', 'age': 10, 'hobby_list': ['开车', '骑行', '跑步', '美女']})
print(dic.items()) # 迭代输出
for i in dic.items():
print(i) # 以元组的形式输出
for a, b in dic.items(): # 元组进行拆包并打印
print(a, b)
# 输出如下
dict_items([('name', '张三'), ('age', 10), ('hobby_list', ['开车', '骑行', '跑步', '美女'])])
('name', '张三')
('age', 10)
('hobby_list', ['开车', '骑行', '跑步', '美女'])
name 张三
age 10
hobby_list ['开车', '骑行', '跑步', '美女']