Python学习.第六天.字典

  • 前言
  • 一、什么是字典?
  • 二、字典的原理
  • 三、字典的创建与删除
  • 四、字典的查询操作
  • 五、字典元素的增、删、改操作
    • 1.key的判断:
    • 2.字典元素的删除
    • 3.字典元素的新增
    • 4.获取字典视图的三个方法
    • 5.字典元素的遍历
  • 六、字典生成式
  • 总结

前言


一、什么是字典?

字典是Python内置的数据结构之一,与列表一样是一个可变序列。
可变序列是指可以进行增删改的操作,反之,不可变序列就是不可以进行增删改操作。
以键值对的方式存储数据,字典是一个无序的序列
eg:scores = {‘张三’:100,‘李四:98’,‘王五:45’}
冒号之前的称为 键,冒号之后的称为 值,整体称为键值对。

可以看到 key1的值第一个放到字典中的键,我们向字典中存储数据的时候,会经过一个hash()函数的工序,要把存储的键放到hash()函数中进行计算存储的位置,所以要求放到字典中的键,必须是一个不可变序列(整数序列、字符串序列)。

二、字典的原理

字典的实现原理与查字典类似,查字典是现根据部首或者拼音查找对应的页码,Python中的字典是根据key查找value所在的位置。

三、字典的创建与删除

(1)最常用的方式,使用花括号
(2)使用内置函数dict()

 scores = {'one': 100, 'two': 200, 'three': 300}
print(scores)
print(type(scores))
print('-------------------------------------')
student = dict(name='jack', age=20)
print(student)

四、字典的查询操作

(1)[] 如果字典中不存在指定的key,抛出keyError异常。
(2)get()方法,如果字典中不存在指定的key,并不会抛出keyError而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回。

scores = {'one': 100, 'two': 200, 'three': 300}
print(scores['two'])print(scores.get('two'))
print(scores.get('four'))
print(scores.get('three', 99))  # 查找three时 所对的value不存在时,提供的一个默认值
print(scores.get('four', 300))

五、字典元素的增、删、改操作

1.key的判断:

(1)in:指定的key在字典中存在返回True。
(2)not in:指定的key在字典中不存在返回True,存在就返回False。

scores = {'one': 100, 'two': 200, 'three': 300}
print('one' in scores)
print('four' not in scores)  # 不存在就返回True
print('one' not in scores)  # 存在就返回 False

2.字典元素的删除

del scores['one']
print(scores)

3.字典元素的新增

scores['four'] = 99
print(scores) #{'two': 200, 'three': 300, 'four': 99}scores['four'] = 100
print(scores)  # {'two': 200, 'three': 300, 'four': 100}

如果增加的字典key与已有的相同,则自动更新覆盖原字典的value。

4.获取字典视图的三个方法

(1)keys():获取字典中所有的key
(2)values():获取字典中所有的value
(3)items():获取字典中所有的key、value对

scores = {'one': 100, 'two': 200, 'three': 300}
keys = scores.keys()
print(keys)
print(type(keys))
print(list(keys))  # 将所有的key组成的视图转成列表# 获取都有的value
values = scores.values()
print(values)
print(type(values))
print(list(values))# 获取所有的key—value对
items = scores.items()
print(items)
print(list(items))  # 转换之后的列表元素是由元组组成的

5.字典元素的遍历

scores = {'one': 100, 'two': 200, 'three': 300}
for _ in scores:  # _ 作为变量print(_, scores[_])
print('---------------------------------------')
scores = {'one': 100, 'two': 200, 'three': 300}
for _ in scores:print(_, scores[_], scores.get(_))

六、字典生成式

内置函数zip():
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回有这些元组组成的列表。


items = ['fruits', 'books', 'others']
prices = [96, 78, 65]d = {items: prices for items, prices in zip(items, prices)}
print(d)a = {prices: items.upper() for prices, items in zip(prices, items)}
print(a)# 如果两个元素之间的个数不相等,以元素短的为准生成

总结

字典的特点:
(1):字典中的所有元素都是一个key—value对,key不允许重复,value可以重复。
(2):字典中的元素时无序的。
(3):字典中的key必须是不可变对象
(4):字典也可以根据动态地伸缩
(5):字典会浪费较大的内存,是一种使用空间换时间的数据结构。

Python学习.第六天.字典相关推荐

  1. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  2. Python学习:字典(dictionary)

    Python学习:字典(dictionary) 异常处理小技巧 异常 ​ 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个 ...

  3. python学习(字典、用户输入和while循环)

    前言:上次学习到了if语句,这次接着进行学习. 字典 字典能够准确地为各种真实物体建模,且能够将相关信息关联起来. 使用字典 字典是一系列的键--值对,一个建对应一个值,值可以为数字.字符串等 在Py ...

  4. Python学习(五)字典

    字典 1.一个简单的字典 现在想存储一个人的基本信息,比如姓名,年龄等信息,应该怎样存储呢?下面是一个简单的字典,存储了一个人的相关信息. people_0 = {"name": ...

  5. Python学习6 字典基础知识和常用函数

    字典概念 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据.为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 ...

  6. python学习—伍—字典

    目录 零.字典基础 简单字典举例 字典是什么 访问字典中的值 添加键值对 创建空字典 修改字典中的值 删除键值对 由类似对象组成的字典 使用 get() 来访问值 壹.遍历字典 遍历所有键值对 遍历字 ...

  7. python学习04——字典

    文章目录 1. 字典的创建 2. 字典的元素查找 2.1 使用`[]` 2.2 使用`get()`函数 3. 字典的增删改操作 3.1 判断元素 3.2 增加元素 3.3 删除元素 3.3.1 删除某 ...

  8. Python 学习笔记 - 字典

    1.使用字典 字典 是一系列键-值对. * 每个键都与一个值相关联,你可以使用键来访问与之相关联的值. * 与键相关联的值可以是数字.字符串.列表乃至字典. * 事实上,可将任何Python对象用做字 ...

  9. Python学习之字典

    #字典 ''' 语法: 字典名 = {'键':'值','键':'值',....} 例如:test = {'color':'pink','points':7} print(test['color']) ...

最新文章

  1. VLFeat开源库介绍及在VS2013中的编译
  2. java数组中怎么去重_java数组去重怎么弄???大神来解
  3. idea工程本地依赖_IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)...
  4. 卓语言对泛型类的使用
  5. 论文浅尝 | LightRNN:存储和计算高效的 RNN
  6. ANDROID模拟器访问本地WEB应用10.0.2.2
  7. java根据距离算经纬度_java 根据两点经纬度来算距离
  8. 提高 Mac OS X 速度的 52 个方法
  9. 彻底讲清楚ZooKeeper分布式锁的实现原理【石杉的架构笔记】
  10. star面试法则面试案例_案例面试技巧
  11. java生成随机邮箱_Java随机密码生成并和邮箱、手机号匹配
  12. 搭讪技巧,希望所有单身的程序员兄弟都有女朋友哦!!
  13. windows用虚拟机vmWare安装黑苹果及注意事项
  14. 在OCI中为计算实例添加第二块网卡
  15. xmind转Excel测试用例
  16. 1.41亿老人遭受过虐待,厌老憎老为何成了时代病?
  17. 使用IDEA从零开始新建一个springboot项目
  18. Struts2访问验证码异常解决OgnlValueStack:64 - ..java.lang.NumberFormatException: For input string: 1494056190
  19. 阿里云开发中分区和列操作
  20. 怎么让PPT分享不那么枯燥?

热门文章

  1. 1983—2001世嘉主机发展历程
  2. Python统计模型探索性数据分析(EDA)系统(单变量-双变量-相关性-缺失值)
  3. 称金币问题: 有27枚金币,其中一个是假的。假的比真的略轻。现在有一个天平,问最少几次可以找出假币?
  4. 持久化技术——游戏玩家信息管理(基于 SQLite)
  5. 排序:快排(随机选择枢轴)、堆排序、归并排序
  6. css实现从左到右渐变色
  7. iOS小技能:设置tableView的点击事件优先级低于cell的选中事件(场景:比如筛选视图,监听蒙版的点击事件就隐藏筛选视图)
  8. 关于intrins.h头文件的介绍,做流水灯时候更方便
  9. Flash服务端常见架构方案
  10. 无障碍感受 北京之美