Python3 字典浅析

字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。

创建并打印字典:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)

您可以通过在方括号内引用其键名来访问字典的项目:

获取 “model” 键的值:

x = thisdict["model"]

还有一个名为 get() 的方法会给你相同的结果:

获取 “model” 键的值:

x = thisdict.get("model")

您可以通过引用其键名来更改特定项的值:

把 "year" 改为 2019:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

您可以使用 for 循环遍历字典。

循环遍历字典时,返回值是字典的键,但也有返回值的方法。

逐个打印字典中的所有键名:

for x in thisdict:
  print(x)
'''
结果为:
brand
model
year
'''

逐个打印字典中的所有值:

for x in thisdict:
  print(thisdict[x])
'''
结果为
Porsche
911
1963
'''

您还可以使用 values() 函数返回字典的值:

for x in thisdict.values():
  print(x)
'''
结果为:
Porsche
911
1963
'''

通过使用 items() 函数遍历键和值:

for x, y in thisdict.items():
  print(x, y)

结果为
brand Porsche
model 911
year 1963

要确定字典中是否存在指定的键,请使用 in 关键字:

检查字典中是否存在 “model”:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict:
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

要确定字典有多少项目(键值对),请使用 len() 方法。

打印字典中的项目数:

print(len(thisdict))

通过使用新的索引键并为其赋值,可以将项目添加到字典中:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

有几种方法可以从字典中删除项目:

pop() 方法删除具有指定键名的项:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

popitem() 方法删除最后插入的项目(在 3.7 之前的版本中,删除随机项目):

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

del 关键字删除具有指定键名的项目:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict["model"]
print(thisdict)

del 关键字也可以完全删除字典:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict

print(thisdict) #this 会导致错误,因为 “thisdict” 不再存在。

clear() 关键字清空字典:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.clear()
print(thisdict)

您不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在dict2 中进行。

有一些方法可以进行复制,一种方法是使用内建的字典方法 copy()。

使用 copy() 方法来复制字典:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

制作副本的另一种方法是使用内建方法 dict()。

使用 dict() 方法创建字典的副本:

thisdict =  {
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

词典也可以包含许多词典,这被称为嵌套词典。

创建包含三个字典的字典:

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

结果为:
{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

或者,如果您想嵌套三个已经作为字典存在的字典:

创建三个字典,然后创建一个包含其他三个字典的字典:

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

结果是:
{'child1': {'name': 'Phoebe Adele', 'year': 2002}, 'child2': {'name': 'Jennifer Katharine', 'year': 1996}, 'child3': {'name': 'Rory John', 'year': 1999}}

也可以使用 dict() 构造函数创建新的字典:

thisdict = dict(brand="Porsche", model="911", year=1963)

print(thisdict)

Python 提供一组可以在字典上使用的内建方法。

方法 描述 clear() 删除字典中的所有元素 copy() 返回字典的副本 get() 返回指定键的值 fromkeys() 返回拥有指定键和值的字典 items() 返回包含每个键值对的元组的列表 keys() 返回包含字典键的列表 pop() 删除拥有指定键的元素 popitem() 删除最后插入的键值对 setdefault() 返回指定键的值。如果该键不存在,则插入具有指定值的键。 update() 使用指定的键值对字典进行更新 values() 返回字典中所有值的列表

Original: https://www.cnblogs.com/2zly/p/13405840.html
Author: 颖火虫赵云
Title: Python3 字典浅析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643557/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • vue系列—Mustache.js模板引擎介绍及源码解析(十)

    根据官方介绍:Mustache可以被用于html文件、配置文件、源代码等很多场景。它的运行得益于扩展一些标签在模板文件中,然后使用一个hash字典或对象对其进行替换渲染操作。 基本…

    技术杂谈 2023年6月1日
    063
  • 「日志」Navicat统计的行数竟然和表实际行数不一致

    背景 近期为了保障线上数据库的稳定性,我决定针对一些大表的历史数据有计划地进行备份迁移,但是呢,发现一个奇特的现象,Navicat统计行数和表自身count统计数竟然不一致!?0….

    技术杂谈 2023年7月24日
    067
  • 【赵渝强老师】利用Python完成数据分布特征的分析

    在对数据的质量进行分析后,接下来就可以对数据的特征进行分析和计算,也可以通过绘制图表对数据的特征进行展示。数据的特征分析通过有以下几种方式:分布分析、对比分析、统计量分析、周期性分…

    技术杂谈 2023年7月24日
    071
  • Linux进程调度器

    完全公平调度器 用黑体标出的是文章的主线,未用黑体标出的内容是对黑体内容的解释或注解。 每次调用调度器时,它会挑选具有最高等待时间的进程,把CPU提供给该进程。如果经常发生这种情况…

    技术杂谈 2023年7月24日
    077
  • H3C 802.11 WEP加密特点与注意事项

    posted @2019-09-22 22:19 樊伟胜 阅读(564 ) 评论() 编辑 Original: https://www.cnblogs.com/fanweishen…

    技术杂谈 2023年5月30日
    096
  • 批处理-日常小功能用法记录

    日常用到的一些批处理小命令记录 1、删除某个目录及其子目录下所有特定后缀的文件 假设目标目录为E:\PROJECT,目标后缀为.bakstep1:进入该目录 cd /d E:\PR…

    技术杂谈 2023年7月11日
    076
  • 数学基础之微积分

    本文主要介绍学习机器学习过程中涉及到的一些微积分的基本概念,也包括部分数值分析,优化求解的概念。 直观定义 当函数 $y=f(x)$ 在 $x_{0}$ 的某个去心邻域内有定义,若…

    技术杂谈 2023年5月31日
    0106
  • 在博客文章中使用mermaid 定义流程图,序列图,甘特图

    Mermaid(美人鱼)是一套markdown语法规范,用来在markdown文档中定义图形,包括流程图、序列图、甘特图等等。 强烈建议用这个来编写,因为有语法智能提示,还能实时看…

    技术杂谈 2023年5月31日
    078
  • 解析京东cookie

    该脚本会自动解析剪贴板内的cookie内容,免去手动寻找pin和key的麻烦 Original: https://www.cnblogs.com/1314h/p/16745098….

    技术杂谈 2023年6月21日
    0149
  • 重学Java泛型

    系列文章目录和关于我 一丶从字节码层面看范型擦除 public class Type1 { private T t; } 使用jclasslib插件查看其字节码: 可以看到 t属性…

    技术杂谈 2023年7月25日
    096
  • Selenium

    Selenium 简介 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium…

    技术杂谈 2023年6月21日
    0101
  • Centos7 配置ipv6地址、静态路由

    1. 手动配置ipv6地址 1.修改配置文件, eth0换成自己的网口名称 vim /etc/sysconfig/network-scripts/ifcfg-eth0 具体配置信息…

    技术杂谈 2023年5月30日
    081
  • 阿里云Linux-Centos8安装mysql8

    1. 安装MySQL 依次执行以下&#x…

    技术杂谈 2023年6月21日
    084
  • 自己动手搞一个拖动滑块,点击水波纹效果

    Original: https://www.cnblogs.com/libin-1/p/7712799.htmlAuthor: 最骚的就是你Title: 自己动手搞一个拖动滑块,点…

    技术杂谈 2023年5月31日
    076
  • RocketMQ扫盲篇

    本篇博客主要参考:《浅入浅出》-RocketMQ 敖丙APACHE-RocketMQ Gitee RocketMQ官方文档RocketMQ 实战与进阶 GitChat 又是好久没有…

    技术杂谈 2023年7月25日
    061
  • 3分钟快速了解猪齿鱼权限

    猪齿鱼 Choerodon 数智化开发管理平台 ,提供协作、测试、DevOps及容器等工具,帮助企业拉通软件开发和项目管理的需求、设计、开发、部署、测试和运营全流程,全面满足企业研…

    技术杂谈 2023年7月24日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球