注: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的常用方法的更多相关文章

  1. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  2. Python 全栈开发:dict(字典)常用方法操作、dict嵌套

    数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...

  3. dict字典常用方法总结,数据解构(解包)

    dict {'name':'holle'}字典存储大量关联型数据,可迭代的,最多只有200个键.查询数据速度非常快,符合二分查找(有100个数比如找75会先找到50然后判断,所以2^7次方7次即可找到 ...

  4. Python测试开发之---list、str、dict、tuple小结

    str的常用方法有: str.digits 0-9的表示str.uppercase 大写字母str.lowercase 小写字母str.letters 所有字母" ".join(s ...

  5. 深入set和dict

    一. 浅拷贝和深拷贝   浅拷贝:就是创建一个具有相同类型,相同值但不同id的新对象.  浅拷贝产生的新对象中可变对象的值在发生改变时,会对原对象的值也做出改变,因为这些值是同一个引用. a = [1 ...

  6. 05-深入python的set和dict

    一.深入python的set和dict 1.1.dict的abc继承关系 from collections.abc import Mapping,MutableMapping #dict属于mappi ...

  7. 第五章:深入Python的dict和set

    第五章:深入Python的dict和set 课程:Python3高级核心技术 5.1 dict的abc继承关系 class Mapping(Collection): __slots__ = () &q ...

  8. CoreBluetooth - 中心模式

    BLE中心模式流程-coding BLE中心模式流程 - 1.建立中心角色 - 2.扫描外设(Discover Peripheral) - 3.连接外设(Connect Peripheral) - 4 ...

  9. python dictionay(字典 )基本用法

    dict(dictionary)是一系列无序对象的集合,由键-值对构成,通过读取键来取得对应的值,具有可变,无序,异构,可嵌套的属性. dict初始化1.直接采用字典格式 2.利用dict(),[注] ...

随机推荐

  1. LeetCode Day 2

    LeetCode0004 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 n ...

  2. 跨域带cookie失效的解决方案

    在webpack的tableproxy那儿配置完跨域以后,想给cookie添加domain以便请求的时候带上cookie domain为localhost,cookie不会失效,但是一但改成baidu ...

  3. 吴裕雄--天生自然 PYTHON语言数据分析:ESA的火星快车操作数据集分析

    import os import numpy as np import pandas as pd from datetime import datetime import matplotlib imp ...

  4. Starting php-fpm [18-Jun-2019 12:56:59] NOTICE: PHP message: PHP Warning: Version warning提示报错解决

    php-fpm在命令行重启时出现如下提示信息在终端上,虽然不影响使用,但是不够干净利落,参考了一篇国外博客得以解决,参考链接:https://community.centminmod.com/thre ...

  5. 一站式自动化测试平台 http://www.Autotestplat.com

    Autotestplat 一站式自动化测试平台及解决方案 自动化平台开发 3.1 自动化平台开发方案 3.1.1 功能需求 支持 API.AppUI.WebUI 性能等自动化测试,集成实现测试用例管理 ...

  6. 从又一家外卖被Uber收购,看美团打车未来

    别以为Uber在中国失利,连优步中国都被滴滴收购了,就认为Uber已经不行了.其实从全球范围内来看,Uber还是相当强势的--创始人的那些破事儿不算在内.此外,更重要的是Uber已经不单单是在打车业务 ...

  7. 剑指CopyOnWriteArrayList

    上期回顾 之前的一篇 剑指ConcurrentHashMap[基于JDK1.8] 给大家详细分析了一波JUC的ConcurrentHashMap,它在线程安全的基础上提供了更好的写并发能力.那么既然有 ...

  8. 2016/11/10 吃吃喝喝Hacking Thursday Night聚餐活动 at Dunkin Donuts

    店名:Dunkin Donuts 唐恩都乐 点评:http://www.dianping.com/shop/21378231 地址:静安区南京西路1649号静安公园内(近静安公园) 走法:地铁2号线静 ...

  9. jQuery学习笔记二

    事件监听者是DOM的一部分,任何页面都可以增加事件监听者.浏览器利用事件监听者监视页面上做了什么,然后告诉Javascript解释器是否需要采取行动.如:$('#showMessage').click ...

  10. 【RxJava Demo分析】(二)Schedulers线程调度器 · Hans Zone

    用Schedulers(调度器)实现多任务(并发,Concurrency)的例子 废话不多说我们看一下有关于RxJava的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...