字典详解

https://www.cnblogs.com/poloyy/p/15083781.html

get(key)

作用

指定键,获取对应值

两种传参

  • dict.get(key):键存在则返回对应值,不存在则返回 None
  • dict.get(key, default):键存在则返回对应值,不存在则返回设置好的 default 值

栗子

# get
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
}
print(book.get("title"))
print(book.get("books"))
print(book.get("books", "默认值")) # 输出结果
Python 入门基础
None
默认值

clear()

作用

清空字典所有键值对

栗子

# clear
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} print(book)
book.clear()
print(book) # 输出结果
{'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社'}
{}

pop(key)

作用

  • 指定键,移除对应的键值对,并返回值
  • 键不存在,会报错

栗子

# pop
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} print(book.pop("title"))
print(book) # 输出结果
Python 入门基础
{'author': '张三', 'press': '机械工业出版社'}

update()

作用

更新字典键值对

栗子一:传入的是字典

# update 栗子一
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} book1 = {
"title": "Python 从入门到放弃"
} # 若传入字典的键是已存在的,则更新原有的值
book.update(book1)
print(book) book2 = {
"money": 119
}
# 若传入字典的键是不存在的,则添加新的键值对
book.update(book2)
print(book) # 输出结果
{'title': 'Python 从入门到放弃', 'author': '张三', 'press': '机械工业出版社'}
{'title': 'Python 从入门到放弃', 'author': '张三', 'press': '机械工业出版社', 'money': 119}

栗子二:传入的是 iterable

d = {'x': 2}

d.update([('y', 2), ('z', 3)])
print(d) # 输出结果
{'x': 2, 'y': 2, 'z': 3}

栗子三:传入的是关键字参数

d = {'x': 2}

d.update(y=3, z=0)
print(d) # 输出结果
{'x': 2, 'y': 3, 'z': 0}

copy()

作用

将字典浅拷贝到另一个字典

栗子

# copy
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社',
'page': [1, 2, 3]
}
# 浅拷贝到新变量
book1 = book.copy()
print(book1) # 修改原来的字典对象
book['title'] = "入门到放弃" # 改字符串-不可变对象
book['page'][0] = 11 # 改数组-可变对象 print(book, book1) # 输出结果
{'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社', 'page': [1, 2, 3]}
{'title': '入门到放弃', 'author': '张三', 'press': '机械工业出版社', 'page': [11, 2, 3]} {'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社', 'page': [11, 2, 3]}

浅拷贝、深拷贝的区别

https://www.cnblogs.com/poloyy/p/15084277.html

items()

作用

  • 返回字典中所有键值对 item
  • 键值对 item 是一个元组,第 0 个元素是键,第 1 个元素是值

栗子

# items
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} # 一个变量则是元组
for item in book.items():
print(item) # 两个变量则取元组第 0、1 位置的值
for key, value in book.items():
print(key, value) # 输出结果
('title', 'Python 入门基础')
('author', '张三')
('press', '机械工业出版社') title Python 入门基础
author 张三
press 机械工业出版社

keys()

作用

返回字典中所有的键

栗子

# keys
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} for key in book.keys():
print(key) # 输出结果
title
author
press

values()

作用

返回字典中所有的值

栗子

# values
book = {
'title': 'Python 入门基础',
'author': '张三',
'press': '机械工业出版社'
} for value in book.values():
print(value) # 输出结果
Python 入门基础
张三
机械工业出版社

Python - dict 字典常见方法的更多相关文章

  1. python之字典及其方法---整理集

    字典 特点: 使用逗号分隔的key:value形式: 使用大括号括起来: key-value的键值对中,value部分可以是任意类型: 列表.字典不能做为字典的key: 字典是无序的,哪个key-va ...

  2. python,dict的setdefault方法

    @dict的setdefault方法 先看看文档中的解释 setdefault(...)    D.setdefault(k[,d]) -> D.get(k,d), also set D[k]= ...

  3. [Python] dict字典的浅复制与深复制

    Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...

  4. Python dict字典方法完全攻略(全)

    我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...

  5. python笔记-dict字典的方法2

    #!/usr/bin/env python #-*- coding:utf-8 -*- ''' 概述: 使用键值(key-value)存储,具有极快的查找速度 注意:字典是无序的 key的特性: 1. ...

  6. python笔记-dict字典的方法

    #!/usr/bin/env python #-*- coding:utf-8 -*- #打印0001-9999的数字 for i in range(9999): s = "%04d&quo ...

  7. python dict 字典

    字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不 ...

  8. Python - dict 字典的多种遍历方式

    前置知识 for 循环详解:https://www.cnblogs.com/poloyy/p/15087053.html 使用 for key in dict 遍历字典 可以使用 for key in ...

  9. Python中字典get方法的使用

    Python中字典get方法的使用 说起来,这个功能是否需要学习还真是有待于讨论.其实,知道了字典这种数据结构以后,通过最基本的Python功能也能够实现一个类似的功能.不过,既然内置了这个功能那么我 ...

随机推荐

  1. MIT6.828-LAB1 : PC启动

    Lab1 1. 先熟悉PC的物理地址空间 这里其实有很多可以说的,不过先简单描述一下吧.从0x00000000到0x00100000这1mb的地址空间时机器处于16位的实模式.也就是说这个时候机器的汇 ...

  2. Luat Inside | 致敬经典,使用Air724UG制作简易贪吃蛇

    作者简介: 打盹的消防车--活跃于Luat社群的新生代全能开发者,东北小伙儿爽朗幽默.好学敏思,更是实力行动派.幼年曾手握火红炽铁而后全然无恙,堪称魔幻经历:如今热衷于各类嵌入式软硬件研究,快意物联江 ...

  3. 点分治&cdq分治 总结

    游荡的孤高灵魂不需要羁绊之处. 洛谷题单 点分治 前置芝士 树的重心 树分治 例题略解 P3806 [模板]点分治1 板子题,先暴力找到整棵树的重心,然后先求出重心到各点的距离,进而算出他所在树的各个 ...

  4. Java程序安装失败

      检查文件路径,应该不含中文汉字,空格以及特殊字符.应将jdk的安装目录设置为纯英文路径. 是否有多个安装程序同时运行,若多点安装程序则会安装失败,打开任务管理器,查看是否有多个安装程序运行 注册表 ...

  5. String ,StringBuffer 与S tringBuilder的区别??

    String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) ------------------------------------- ...

  6. Python3中最常用的5种线程锁你会用吗

    前言 本章节将继续围绕threading模块讲解,基本上是纯理论偏多. 对于日常开发者来讲很少会使用到本章节的内容,但是对框架作者等是必备知识,同时也是高频的面试常见问题. 官方文档 线程安全 线程安 ...

  7. Springboot:单元测试Junit基本注解@BeforeClass、@AfterClass、@Before、@After、@Test、

    一.unit中集中基本注解,是必须掌握的. @BeforeClass – 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意public ...

  8. php漏洞 sha1函数

    0x01: 绕过技巧是传入的是数组时,会报错,返回为NULL,当传入的两个参数都是数组直接相等

  9. 「ARC103D」 Distance Sums

    「ARC103D」 Distance Sums 传送门 水题. 首先如果让你求树上的节点 \(i\) 到其它所有节点的距离和,这是非常简单的,这就是非常常规的换根 \(\texttt{DP}\). 那 ...

  10. python使用笔记23--面向对象编程

    1.面向对象编程概念 面向对象是包含面向过程 面向过程编程 买车: 1.4s看车,买车 2.上保险 保险公司 3.交税 地税局 4.交管所 上牌 面向对象编程 卖车处: 1.4s 2.保险 3.交税 ...