python基础 10.字典

字典

  什么是字典
    python内置的数据结构之一,与列表一样是可变序列
    以键值对的方式存储数据,字典是一个无序列表
    字典示意图:
0
  字典的特点
    战斗中所有元素都是一个key-value对,key不允许重复,value可以重复
    字典中的元素是无序的
    字典中的key必须是不可变对象
    字典也可以根据需要动态的伸缩
    字典会浪费较大的内存,是一种使用空间换时间的数据结构
0
# 字典的特点
dic = {'name': '张三', 'name': '李四'}
print(dic)  # {'name': '李四'},key值重复时会出现覆盖的情况
  字典的实现原理
    字典的实现原理与查字典类似,查字典是先根据不受或拼音查找相应的页码,python中字典是根据key查找value所在位置
  字典创建删除
    创建:
      最常用方式:使用花括号
dic = {'张三': 100, '李四': 98, '王五': 90}
      使用内置函数dict()
dict(name='jack', age=18)
      空字典
nulldic = {}
0
  字典的查询操作
    字典中元素的获取
      用[]获取:firstdic['张三']
      用get()方法获取:firstdic.get('张三')
# 查找字典中元素
firstdic = {'张三': 100, '李四': 98, '王五': 90}
seconddic = dict(name='jack', age=18)
print(seconddic['name'])
print(firstdic.get('张三'))
print(firstdic.get('赵六'))  # 字典内不存在该数据时,则返回None
print(firstdic.get('赵六', 99))  # 99是查找字典内不存在的元素时提供的一个默认值
print(firstdic['赵六'])  # 字典内不存在该数据时,则出现以下错误:
# Traceback (most recent call last):
#   File "D:\PycharmProjects\pystu\demo.py", line 522, in <module>
#     print(firstdic['赵六'])
# KeyError: '赵六'
0
    两种获取方式的区别
      []如果字典中不存在指定的key,抛出keyError
      get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError而是返回None,可以通过参数设置默认的value,以便制定的key不存在时返回
  字典元素的常用操作
    key的判断
      in : 指定的key在字典中存在则返回True
      not in : 指定的key在字典中不存在则返回True
# 字典的增删改
firstdic = {'张三': 100, '李四': 98, '王五': 90}
seconddic = dict(name='jack', age=18)
print('张三' in firstdic)
print('张三' not in firstdic)
print(firstdic)
0
    字典元素的删除
      del score[‘张三’]
      del.clear()
# 字典元素的删除
firstdic = {'张三': 100, '李四': 98, '王五': 90}
seconddic = dict(name='jack', age=18)
del firstdic['李四']  # 删除字典中的李四
print(firstdic)
firstdic.clear()  # 清空字典
print(firstdic)
0
    字典元素的新增
      firstdic['张三']=0
# 字典元素的新增
firstdic = {'张三': 100, '李四': 98, '王五': 90}
firstdic['钱七'] = 95  # 在字典中新增一条
print(firstdic)
0
    字典视图
获取字典视图
keys()
获取字典中多所有的key
values()
获取字典中多所有的value
items()
获取字典中多所有key,value对
# 字典视图
firstdic = {'张三': 100, '李四': 98, '王五': 90}
seconddic = dict(name='jack', age=18)
print(firstdic.keys(), type(firstdic.keys()), list(firstdic.keys()))  # list是讲座由的key组成的视图转成列表
print(seconddic.values(), type(seconddic.values()), list(seconddic.values()))
print(firstdic.items(), type(firstdic.items()), list(firstdic.items()))  # 转换之后的列表元素是由元组组成
0
    字典元素的遍历
# 字典元素的遍历
firstdic = {'张三': 100, '李四': 98, '王五': 90}
for i in firstdic:
    print(i, firstdic[i], firstdic.get(i))
0
  字典生成式
    内置函数zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回有这些元组组成的列表
items = ['Fruits', 'Books', 'Others']
prices = [10, 20, 30, 100]
d = {item: price for item, price in zip(items, prices)}
print(d)

    注:如果两个列表元素数量不同,选择少的那个建组

0
posted @ 2022-07-01 16:13  乌醍  阅读(64)  评论(0编辑  收藏  举报