字典

  • 字典的创建
  • 字典的使用

字典的创建

首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等

Python的字典实现使用的是hash表,它是一个数组,他的索引是通过键的hash函数获得的。

先看看字典的定义吧

# key不能改变
dict1 = {3: 3,2: 4,2.1: 3,'sd': 2,4: 'ss'
}
print('dict1 = ', dict1)

运行结果:

使用元组作为key:

lst1 = [2, 1, 3]
tup1 = (2, 1, 3)
dict2 = {tup1: lst1
}
print('dict2 = ', dict2)

运行结果:

需要注意,如果使用list作为key,运行则会报错。

dict3 = {lst1: tup1
}
print('dict3 = ', dict3)

如图:

字典的使用

插值:

dict4 = {3: 3,2: 4,2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])

运行结果:

如代码所示,使用[]取值,如果key存在,则修改value,如果key不存在则添加value。

如果在dict里面想要获取对应的value,最好不用如上所示的print(dict4[3])去取value,使用get方法获取。

dict4 = {3: 3,2: 4,2.1: 3
}
print(type(dict4))
print('dict4 = ', dict4)
dict4[21] = 36
print('dict4 = ', dict4)
dict4[3] = 13
print('dict4 = ', dict4)
print(dict4[3])
print(dict4.get(3))
print(dict4.get(13))

通过这种方式,如果key写错了,或者key不存在,都不会引起报错,只会返回一个None

访问字典里面所有的key,value

print(dict4.keys())
print(dict4.values())
print(dict4.items())

运行结果:

清空字典:
可以使用pop和clear

print('dict4 = ', dict4)
dict4.pop(3)
print('dict4 = ', dict4)
dict4.clear()
print('dict4 = ', dict4)

运行结果:

字典的更新:除了使用key重新赋值,还可以使用一个dict更新另一个dict

dict4 = {3: 3,2: 4,2.1: 3
}
dict5 = {1: 11,2: 22
}
dict5.update(dict4)
print('dict5 = ', dict5)

使用dict4来更新dict5,运行结果:

虽然dict5有key是2,但是使用dict4更新dict5,会把相同的key的value覆盖掉,所以留下了diect4的value
还有另一种方式也可以更新:

dict4 = {3: 3,2: 4,2.1: 3
}
dict5 = {1: 11,2: 22
}
dict6 = {**dict5, **dict4}
print('dict6 = ', dict6)

运行结果:

运行出来和使用update是相同的结果,具体原理还不清楚。

dict的copy和fromkeys
copy:返回一个字典的浅复制
fromkeys:创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

print('dict6 = ', dict6)
dict7 = dict6.copy()
print('dict7 = ', dict7)
dict6.clear()
dict6 = dict6.fromkeys(dict7)
print('dict6 = ', dict6)

运行结果:

以上就是字典的主要功能,本文结束。

python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)相关推荐

  1. 【Python】字典哈希表按键(key)值(value)顺序和逆序输出

    按照键(key)排序 d = {'c':2, 'b':1, 'a':4, 'd':3} print(d)# 顺序 for i in sorted (d) : print ((i, d[i]), end ...

  2. 哈希表创建哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构.typedef enum{ HASH_OK-icoding-数据结构-C

    哈希表创建 typedef enum{HASH_OK,HASH_ERROR,HASH_ADDED,HASH_REPLACED_VALUE,HASH_ALREADY_ADDED,HASH_DELETED ...

  3. Python数据结构实战——哈希表中的冲突处理(Collision Handling In Hash Table)

    文章目录 1.定义哈希类(能处理冲突) 2.测试 2.1.增加键值 2.2.查找对应键值 2.3.查看哈希表 2.4.更新值 2.5.删除键值对 1.定义哈希类(能处理冲突) class HashTa ...

  4. pandas分层索引(层级索引、MultiIndex)的创建、取值、切片、统计计算以及普通索引和层级索引的转换方法

    pandas分层索引(层级索引.MultiIndex)的创建.取值.切片.统计计算以及普通索引和层级索引的转换方法 @TOC 多层索引的Series 层级索引的创建 层级索引(multi index) ...

  5. HTML给表单元素赋值,JQuery表单元素取值赋值方法总结

    一.普通文本框的赋值与取值 1.1.1赋值 jQuery 表单元素取值与赋值方法总结 function get(){ var test1 = $("input.test1").va ...

  6. python re re.compile search groupdict 正则多取值

    python re re.compile search groupdict 正则多取值 import requests import re import json url = "https: ...

  7. Python数据结构:哈希表

    哈希 散列(哈希)是电脑科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表) ...

  8. python中字典的定义及创建字典

    一.字典(dictionary) 字典和列表类似,也是可变序列,只是与列表不同,它是无序的可变序列,保存的内容是以"键--值对"的形式存放,这类似于我们使用查找汉字的新华字典,它可 ...

  9. Python 数据结构之哈希表的实现

    哈希表(Hash table,也叫作散列表),是根据关键码值(Key value)而直接进行访问的数据结构. 也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做 ...

最新文章

  1. Python的零基础超详细讲解(第四天)-Python的数据类型
  2. jmap -histo pid 输出的[C [B [I [S methodKlass的含义
  3. CSS3 animation-timing-function steps()
  4. Linux疑难杂症解决方案100篇(二)-SHELL编程函数的定义及调用
  5. C++对C的加强之 “实用性”增加
  6. slatstack Master的配置
  7. .net core之ACG小站爬虫(二)
  8. iOS端(腾讯Bugly)闪退异常上报扑获日志集成与使用指南
  9. PCA算法中样本方差和协方差的无偏估计与n-1的由来
  10. python3怎么安装opencv_Python:即使安装了opencv,也无法导入cv2(如何为python3安装opencv3)...
  11. SparkSQL实践
  12. laoshijibuzhu
  13. 微信公众号测试账号获取授权须关注
  14. Missing session attribute 'user' of type List 解决办法
  15. spark记录(6)SparkCore的调优之开发调优
  16. MCS-51单片机指令系统总结(自学笔记)
  17. 京东联盟高级API - 京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟返利接口 京东返利接口
  18. 速读水浒!108将的简介与结局
  19. OSChina 周五乱弹 —— duang ~ duang ~ duang~
  20. (OpenCV+Python)--目标跟踪,卡尔曼滤波+鼠标轨迹跟踪

热门文章

  1. SAP Spartacus 的会话管理 Session Management
  2. Chrome 浏览器扩展 - Night Eye
  3. SAP中国,在中国,为中国,一些包含了SAP logo的NBA运动套装
  4. 我的工作日志 2020年12月1日 星期一
  5. 用了四年的联想Thinkpad P50,今天还给公司了,拍个照留念
  6. 微信图文内容自动同步到腾讯内容开放平台的操作步骤
  7. SAP Commerce开发时的Spring学习要点记录
  8. How OPA addFrame is called
  9. How is ngModelController initialized
  10. doorway path issue of my task in HCP