dict的常用方法
注:dic表示定义的一个字典变量,如:dic = {'name': 'shawn', 'age': 18}
增:
1. dic['love'] = 'girl' 直接通过新的键值对进行添加
dic = {'name': 'shawn', 'age': 18}
dic['love'] = 'girl'
print(dic)
打印结果:
{'name': 'shawn', 'age': 18, 'love': 'girl'}
2. dic.setdefault() 如果原字典中不存在该key值,则新增该key,默认value值为None,如果有key,value两个参数,且原字典中不存在,则新增,若存在该key,则返回对应value
dic = {'name': 'shawn', 'age': 18}
dic.setdefault('love') # 两个参数,参数1为key,参数2为value,参数2默认为None可不填,原字典中不存在则新增,value默认为None
print(dic)
打印结果:
{'name': 'shawn', 'age': 18, 'love': None}
dic.setdefault('love', 'girl') # 原字典中不存在该键值对则新增
print(dic)
打印结果:
{'name': 'shawn', 'age': 18, 'love': 'girl'}
res = dic.setdefault('name') # 原字典中存在该key值,返回对应value
print(res)
打印结果:
shawn
3. dic.update() 用一个字典更新另一个字典,如果被更新的字典中没有无对应的键值对,则新增到该字典中
dic1 = {"name": "shawn"}
dic2 = {"age": 18}
dic1.update(dic2)
print(dic1)
打印结果:
{'name': 'shawn', 'age': 18}
4. dict.fromkeys() 创建新字典,参数1为可迭代对象,参数2为新字典的value值。该方法将参数1打散作为key,参数2作为value值
dic = dict.fromkeys(['name', 'age'], 18)
print(dic)
打印结果:
{'name': 18, 'age': 18} dic = dict.fromkeys('abc', 18)
print(dic)
打印结果:
{'a': 18, 'b': 18, 'c': 18}
删:
1. dic.pop() 根据键删除指定的键值对,有返回值,返回值为被删除键值对的value值
dic = {'name': 'shawn', 'age': 18}
res = dic.pop('age')
print(dic)
打印结果:
{'name': 'shawn'}
print(res)
打印结果:
18
2. dic.popitem() 随机删除一个键值对,但是一般是删除末尾的键值对,有返回值,返回值为被删除的键值对,以元组的形式返回
dic = {'name': 'shawn', 'age': 18}
res = dic.popitem()
print(dic)
打印结果:
{'name': 'shawn'}
print(res, type(res))
打印结果:
('age', 18) <class 'tuple'>
3. del dic['name'] 用del方法删除指定键值对
dic = {'name': 'shawn', 'age': 18}
del dic['name']
print(dic)
打印结果:
{'age': 18}
改:
1. dic['name'] = 'Jack' 通过对字典的key赋新值进行修改
dic = {'name': 'shawn', 'age': 18}
dic['name'] = 'Jack'
print(dic)
打印结果:
{'name': 'Jack', 'age': 18}
2. dic.update() 用一个字典更新另一个字典,如果被更新的字典已含对应的key值,则该key对应的value被替换,如果被更新的字典无对应的键值对,则新的键值对被添加到该字典中
dic1 = {"name": "shawn"}
dic2 = {"name": "Jack", "age": 18}
dic1.update(dic2)
print(dic1)
打印结果:
{'name': 'Jack', 'age': 18}
查:
1. dic['name'] 直接通过键取对应的value值,如果字典不存在该key则会报错
dic = {'name': 'shawn', 'age': 18}
res = dic['name']
print(res)
打印结果:
shawn
res = dic['gender'] # 不存在key值时
print(res)
打印结果:
Traceback (most recent call last):
File "D:/python基础/字典.py", line 24, in <module>
res = dic['gender']
KeyError: 'gender'
2. dic.get() 通过key获取value值,如果不存在则返回None,不会报错,项目中推荐使用
dic = {'name': 'shawn', 'age': 18}
res = dic.get('name')
print(res)
打印结果:
shawn
res = dic.get('gender') # 不存在时
print(res)
打印结果:
None
3. dic.items() 获取字典所有键值对,可获取字典长度,也可将字典转换成列表
dic = {'name': 'shawn', 'age': 18}
res = dic.items()
print(res)
打印结果:
dict_items([('name', 'shawn'), ('age', 18)])
# 一般这样使用:
for k, v in dic.items():
pass
print(len(res)) # 获取字典长度
打印结果:
2
lst = list(res) # 转换成列表
print(lst)
打印结果:
[('name', 'shawn'), ('age', 18)]
4. dic.keys() 获取字典的所有键
res = dic.keys()
print(res)
打印结果:
dict_keys(['name', 'age']) # 可将结果转换成列表
lst = list(res)
print(lst)
打印结果:
['name', 'age']
5. dic.values() 获取字典的所有value值,功能同dic.keys()
6. enumerate(dic) 枚举获取键值对
dic = {'name': 'shawn', 'age': 18}
for i in enumerate(dic):
print(i, type(i))
打印结果:
(0, 'name') <class 'tuple'>
(1, 'age') <class 'tuple'>
dict的常用方法的更多相关文章
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- Python 全栈开发:dict(字典)常用方法操作、dict嵌套
数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...
- dict字典常用方法总结,数据解构(解包)
dict {'name':'holle'}字典存储大量关联型数据,可迭代的,最多只有200个键.查询数据速度非常快,符合二分查找(有100个数比如找75会先找到50然后判断,所以2^7次方7次即可找到 ...
- Python测试开发之---list、str、dict、tuple小结
str的常用方法有: str.digits 0-9的表示str.uppercase 大写字母str.lowercase 小写字母str.letters 所有字母" ".join(s ...
- 深入set和dict
一. 浅拷贝和深拷贝 浅拷贝:就是创建一个具有相同类型,相同值但不同id的新对象. 浅拷贝产生的新对象中可变对象的值在发生改变时,会对原对象的值也做出改变,因为这些值是同一个引用. a = [1 ...
- 05-深入python的set和dict
一.深入python的set和dict 1.1.dict的abc继承关系 from collections.abc import Mapping,MutableMapping #dict属于mappi ...
- 第五章:深入Python的dict和set
第五章:深入Python的dict和set 课程:Python3高级核心技术 5.1 dict的abc继承关系 class Mapping(Collection): __slots__ = () &q ...
- CoreBluetooth - 中心模式
BLE中心模式流程-coding BLE中心模式流程 - 1.建立中心角色 - 2.扫描外设(Discover Peripheral) - 3.连接外设(Connect Peripheral) - 4 ...
- python dictionay(字典 )基本用法
dict(dictionary)是一系列无序对象的集合,由键-值对构成,通过读取键来取得对应的值,具有可变,无序,异构,可嵌套的属性. dict初始化1.直接采用字典格式 2.利用dict(),[注] ...
随机推荐
- Java开发面试常见问题合集
次面试事故 面试官:你看过哪些源码?我:都挺熟悉的面试官:对hashMap了解程度怎么样?面试官:那你能讲讲 HashMap的实现原理吗?面试官:HashMap什么时候会进行 rehash?面试官:结 ...
- 第十六届“二十一世纪的计算”学术研讨会 图灵奖获得者Butler W. Lampson主题演讲
Personal Control of Digital Data 图灵奖获得者Butler W. Lampson主题演讲" title="第十六届"二十一世纪的计算&qu ...
- 关于安装python第三方库
安装python库的两种方式: 一)在线安装: 1)pip install 模块名 2)使用国内源安装:pip install 国内源地址 模块名 3)pycharm中setting-interpre ...
- jquery mobile AJAX特性的陷阱
简单情况是 MVC 重定向,URL不变 试了N种方式,跳来跳去,无解,服务端跳,写JS跳,生成跳转中间页跳.失败 后来一看,明明已经跳到新页了,样式什么还是原页的,有点火大了. 出去溜一圈,喝杯水,和 ...
- POJ 2553 The Bottom of a Graph Tarjan找环缩点(题解解释输入)
Description We will use the following (standard) definitions from graph theory. Let V be a nonempty ...
- H2O theme for Jekyll
正如我在微博上所说的,使用Jekyll半年以来一直没有令我满意的主题模板,所以开始计划自己写一套好看又好用的主题模板.设计之初就明确了极简主义,风格采用扁平化了,通过卡片式设计来进行区块分明的布局,参 ...
- pattern space and hold space of sed
Copied from: stackoverflow When sed reads a file line by line, the line that has been currently read ...
- 等效燃油消耗ECMS与庞德里亚金最小值原理PMP中协同状态的关系
今儿阅读了一篇文献——<车联网环境下并联混合动力客车控制策略优化研究>,是北理的博士所写的,内容比较翔实.主要是里面的关于ECMS和庞德里亚金最小值原理(PMP)的关系推导很让人印象深刻, ...
- powershell加KeePass实现,加密服务器密码清单文件
powershell加KeePass实现,加密服务器清单文件 powershell传教士翻译,改写. 2020-02-27 原文: https://www.altaro.com/msp-doj ...
- Filter过滤器Listener:监听器
Filter过滤器 1. 概念 web中的过滤器:当访问服务器资源是,过滤器可以将请求拦截下来,完成一些特殊功能: 过滤器的作用 完成通用的操作:例如登录验证.统一编码处理.敏感字符过滤... 快速入 ...