dict的使用
Python字典是可变类型数据,可以存储任意对象,如字符串,数字,元组,列表等。
字典的创键
字典有键key和值value组成,使用键值对链接:,字典也称为关联数组或哈希表。
dict_person = {"name": "link", "age": 18}
注意:每个键和值使用:隔开,使用逗号进行隔开,整体放在花括号里面{},键必须独一无二,而且键必须是不可变数据类型,值则不必。
获取字典值
- 使用中括号
[key]获取值 - dict.get("key")获取值
dict_person = {"name": "link", "age": 18}
print('dict_person["name"]', dict_person["name"])
print('dict_person.get("age")', dict_person.get("age"))
注意:key不存在时,使用get("key")返回None, 而使用[]直接报错。
获取字典的长度
dict_person = {"name": "link", "age": 18}
print("dict_person字典的长度是:", len(dict_person))
注意: 字典的长度其实就是多少个key
修改字典
class_dict = {"name": "张俊", "class": "三年一班"}
# 修改为 三年二班
class_dict["class"] = "三年二班"
print(class_dict)
注意: 修改字典值得时候,如果修改的键存在则是修改键对应的值,不存在则是增加新的键,值。
删除字典
- pop(key) 删除指定键是key的条目
- del 删除整个字典
- clear 清空字典
- del dict["key"] 删除指定键是key的条目
class_dict = {"name": "张俊", "class": "三年一班", "age": 18}
# 删除键是"class"的条目
del class_dict["class"]
# 也可以使用pop, 如果删除的键不存在直接报错
# class_dict.pop('class')
print(class_dict)
# 清空字典
class_dict.clear()
print(class_dict)
# 删除整个字典
del class_dict
字典内置方法
- dict.fromkeys() 创建新字典,以seq作为键,val作为值
dict_1 = {}
dict_2 = dict_1.fromkeys("a", 11)
print(dict_2)
- dict.keys() 列表形式返回字典所有的key
person = {"name": "张三", "age": 18, "adress": "武当山"}
print(person.keys())
- dict.values() 列表形式返回字典所有的values
person = {"name": "张三", "age": 18, "adress": "武当山"}
print(person.values())
- dict.items() 返回可遍历键,值
person = {"name": "张三", "age": 18, "adress": "武当山"}
for k, v in person.items():
print(k, v)
后续会讲解数据类型的深拷贝和浅拷贝。
dict的使用的更多相关文章
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- redis数据结构存储Dict设计细节(redis的设计与实现笔记)
说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...
- python list dict 去重的两种方式
def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- python dict clear只能删除一层,不能够递归删除。
void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- python第一天 - dict
dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...
- python利用dict模拟switch
pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...
- python-list tuple dict set
1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...
- python基础之dict、set及字符
python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...
随机推荐
- Qt Installer Framework翻译(3-1)
初始化安装 下图说明了安装应用程序的默认工作流程: 本节使用在macOS上运行的Your Application Installer示例来说明默认工作流程.安装程序具有本地化外观,并可感知每个受支持的 ...
- java面试| 线程面试题集合
集合的面试题就不罗列了,基本上在深入理解集合系列已覆盖 「 深入浅出 」java集合Collection和Map 「 深入浅出 」集合List 「 深入浅出 」集合Set 这里搜罗网上常用线程面试题, ...
- 【Java并发基础】管程简介
前言 在Java 1.5之前,Java语言提供的唯一并发语言就是管程,Java 1.5之后提供的SDK并发包也是以管程为基础的.除了Java之外,C/C++.C#等高级语言也都是支持管程的. 那么什么 ...
- python练习-8.12
注:本代码是<python核心编程(第二版)>的第八章8-12的练习题的代码实现. 完成的功能:用户给出起始和结束的数字后给出一个下面的表格,分别显示出两个数字间所有整型的十进制.二进制. ...
- doT 这个模板 是怎么实现的?(1)
- 什么是C/S结构,其和B/S有什么区别很联系呢
什么是C/S结构,其和B/S有什么区别很联系呢 原地址:https://zhidao.baidu.com/question/12962713.html C/S结构即服务器/客户机结构.C/S结构通常采 ...
- Potplay视频播放画面扭曲
Potplayer是一款非常好用的视频播放器,解码快,功耗低同时相对较好支持保真加速,但是,在使用过程中出现了如下的所谓“Bug” 经过摸索发现是播放器自动检测到此视频是360视频(不明觉厉,貌似需要 ...
- mybatis generator cmd 终端命令 生成dao model mapper
mybatis generator cmd 终端命令 生成dao model mapper 文件包下载 mybatis-generator-core-1.3.2.jar 下载地址:https://gi ...
- 线程池技术之:ThreadPoolExecutor 源码解析
java中的所说的线程池,一般都是围绕着 ThreadPoolExecutor 来展开的.其他的实现基本都是基于它,或者模仿它的.所以只要理解 ThreadPoolExecutor, 就相当于完全理解 ...
- windows配置Lua开发环境
官网上下载的不靠谱,很多库不能用,你如 require "socket" 如果没有vc那些编译也麻烦,摸索了很久,直接下载安装文件安装即可: 安装这两个就行: 先安装C++2005 ...