python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)
字典
- 字典的创建
- 字典的使用
字典的创建
首先需要注意,字典是由键值对(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)相关推荐
- 【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 ...
- 哈希表创建哈希表(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 ...
- Python数据结构实战——哈希表中的冲突处理(Collision Handling In Hash Table)
文章目录 1.定义哈希类(能处理冲突) 2.测试 2.1.增加键值 2.2.查找对应键值 2.3.查看哈希表 2.4.更新值 2.5.删除键值对 1.定义哈希类(能处理冲突) class HashTa ...
- pandas分层索引(层级索引、MultiIndex)的创建、取值、切片、统计计算以及普通索引和层级索引的转换方法
pandas分层索引(层级索引.MultiIndex)的创建.取值.切片.统计计算以及普通索引和层级索引的转换方法 @TOC 多层索引的Series 层级索引的创建 层级索引(multi index) ...
- HTML给表单元素赋值,JQuery表单元素取值赋值方法总结
一.普通文本框的赋值与取值 1.1.1赋值 jQuery 表单元素取值与赋值方法总结 function get(){ var test1 = $("input.test1").va ...
- python re re.compile search groupdict 正则多取值
python re re.compile search groupdict 正则多取值 import requests import re import json url = "https: ...
- Python数据结构:哈希表
哈希 散列(哈希)是电脑科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表) ...
- python中字典的定义及创建字典
一.字典(dictionary) 字典和列表类似,也是可变序列,只是与列表不同,它是无序的可变序列,保存的内容是以"键--值对"的形式存放,这类似于我们使用查找汉字的新华字典,它可 ...
- Python 数据结构之哈希表的实现
哈希表(Hash table,也叫作散列表),是根据关键码值(Key value)而直接进行访问的数据结构. 也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做 ...
最新文章
- Python的零基础超详细讲解(第四天)-Python的数据类型
- jmap -histo pid 输出的[C [B [I [S methodKlass的含义
- CSS3 animation-timing-function steps()
- Linux疑难杂症解决方案100篇(二)-SHELL编程函数的定义及调用
- C++对C的加强之 “实用性”增加
- slatstack Master的配置
- .net core之ACG小站爬虫(二)
- iOS端(腾讯Bugly)闪退异常上报扑获日志集成与使用指南
- PCA算法中样本方差和协方差的无偏估计与n-1的由来
- python3怎么安装opencv_Python:即使安装了opencv,也无法导入cv2(如何为python3安装opencv3)...
- SparkSQL实践
- laoshijibuzhu
- 微信公众号测试账号获取授权须关注
- Missing session attribute 'user' of type List 解决办法
- spark记录(6)SparkCore的调优之开发调优
- MCS-51单片机指令系统总结(自学笔记)
- 京东联盟高级API - 京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟返利接口 京东返利接口
- 速读水浒!108将的简介与结局
- OSChina 周五乱弹 —— duang ~ duang ~ duang~
- (OpenCV+Python)--目标跟踪,卡尔曼滤波+鼠标轨迹跟踪
热门文章
- SAP Spartacus 的会话管理 Session Management
- Chrome 浏览器扩展 - Night Eye
- SAP中国,在中国,为中国,一些包含了SAP logo的NBA运动套装
- 我的工作日志 2020年12月1日 星期一
- 用了四年的联想Thinkpad P50,今天还给公司了,拍个照留念
- 微信图文内容自动同步到腾讯内容开放平台的操作步骤
- SAP Commerce开发时的Spring学习要点记录
- How OPA addFrame is called
- How is ngModelController initialized
- doorway path issue of my task in HCP