如约而至,紧接着上一期文章,小编将会陆续把全套的Python笔记将依次发放给大家,便于大家学习Python、期末备考、巩固基础等

(这几期是公众号小插曲,后期发放编程技术的话主要还是会围绕Java来展开~感谢大家支持)

字典

  • 字典是Python内置的数据结构之一<class 'dict'>,与列表一样是一个可变的序列(进行增删改)
  • 以键值对的方式存储数据,字典是一个无序的序列

第一个放进去不一定在第一个位置(它底层会用hash计算键进行放入)

  • 字典会浪费较大的内存,是一种空间换时间的数据结构
  • 无序不可重复
  • 字典中的可以是不可变对象

scores={'张三': 100, '李四' : '98'}

根据key找value,类似于java中的Map,也都是无序不可重复 ,重复即覆盖

字典的创建

  • 最常用的方式:使用花括号

scores={' 张三' : 100, '李四' : 98}

  • 使用内置函数dict()

dict(name = 'jack' , age= 20)

取值与使用get()取值的区别

  • []如果字典中不存在指定的key,抛出keyError异常
  • get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError,而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
scores={'张三': 100, '李四' : '98'}scores.get('哈哈',99) #99是在查找哈哈不存在时候返回99

key的判断

  • in :指定的key在字典中存在返回True
  • not in:指定的key在字典中不存在时返回True
  • 字典的删除:del scores['张三']
  • 字典的新增:scores['jack']=90 没有则新增,有则value覆盖
  • 字典的清空:clear

获取字典视图

获取字典视图的三个方法:

  • keys():获取字典中所有key,类型<class 'dict_keys'>

也可以将其转换为列表,list(keys)

  • values():获取字典中所有value,类型<class 'dict_values'>
  • items():获取字典中所有的key,value对
scores={'张三':100,'李四':98,'王五':45}# 获取所有的keykeys = scores.keys()print(keys) # dict_keys(['张三', '李四', '王五'])print(type(keys)) # <class 'dict_keys'>print(list(keys)) # ['张三', '李四', '王五']# 获取所有valuevalues=scores.values()print(values) # dict_values([100, 98, 45])print(type(values)) # <class 'dict_values'>print(list(values)) # [100, 98, 45]# 获取所有的key-value对items=scores.items()print(items)  # dict_items([('张三', 100), ('李四', 98), ('王五', 45)])# 这个小括号称为元祖print(list(items))# [('张三', 100), ('李四', 98), ('王五', 45)]

字典元素的遍历

scores={'张三':100,'李四':98,'王五':45}  for item in scores:    # scpres.get()和scores[]都是根据key获取value    print(item,scores[item],scores.get(item))

输出

张三 100 100

李四 98 98

王五 45 45

字典生成式

  • 内置函数zip()
  • 用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元祖,然后返回由这些元组组成的列表
items=['Fruits','Books','Others']prices=[96,78,85]d = {item : price for item,price inzip(items , prices)}print(d) # {'Fruits': 96, 'Books': 78, 'Others': 85}# d = {item.upper() : price for item,price in zip(items , prices)} #  item.upper()是全部变成大写