date: 2021-06-12title: Python之字典 #标题
tags: python #标签
categories: python # 分类

学习下python字典相关知识点。

创建字典

  1. # 第一种创建方式
  2. dic1 = dict((('one', 1), ('two', 2), ('three', 3)))
  3. print(dic1)
  4. # 第二种创建方式
  5. dic2 = dict(one=11, two=22, three=33)
  6. print(dic2)
  7. # 第三种创建方式
  8. dic3 = dict({'name': '张三', 'age': 10, 'sex': '男'})
  9. print(dic3)
  10. # 基于第三种方式不太正规的写法
  11. info = {'老大': {'name': '张三', 'age': '18', 'sex': '男'}, '朋友': ['李四', '王五', '赵四']}
  12. print(info['朋友'])
  13. # 输出如下:
  14. {'one': 1, 'two': 2, 'three': 3}
  15. {'one': 11, 'two': 22, 'three': 33}
  16. {'name': '张三', 'age': 10, 'sex': '男'}
  17. ['李四', '王五', '赵四']

字典的增删改查

  1. dic = dict({'name': '张三', 'age': 10, 'sex': '男'})
  2. dic['hobby'] = '打篮球' # 默认有则改之,无则追加
  3. # setdefault:有则不变,无则追加
  4. dic.setdefault('age', 22)
  5. dic.setdefault('身高', '180mm')
  6. print(dic)
  7. # 输出如下:
  8. {'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'}

  1. ################ pop删除 ################
  2. dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
  3. dic.pop('身高') # 默认如果有此键即删除,没有就会报错
  4. # pop可以设置第二个参数,如果有则删除并返回删除的value,如果没有此key则返回第二个参数
  5. # 此方式适用于你不确定这个字典中有没有这个key时使用
  6. print(dic.pop('姓名', '没有此键'))
  7. print(dic.pop('name', '没有此键'))
  8. print(dic)
  9. # 输出如下
  10. 没有此键
  11. 张三
  12. {'age': 10, 'sex': '男', 'hobby': '打篮球'}
  13. ################ clear清空 ################
  14. dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
  15. dic.clear() # 清空字典中所有内容
  16. print(dic)
  17. ################ del删除指定key(不推荐使用) ################
  18. dic = dict({'name': '张三', 'age': 10, 'sex': '男', 'hobby': '打篮球', '身高': '180mm'})
  19. del dic['name']
  20. 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 ['开车', '骑行', '跑步', '美女']