Python3 字典浅析
Python 字典
字典(Dictionary)
字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。
实例
创建并打印字典:
thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict)
#结果为:{'brand': 'Porsche', 'model': '911', 'year': 1963}
访问项目
您可以通过在方括号内引用其键名来访问字典的项目:
实例
获取 “model” 键的值:
x = thisdict["model"]
还有一个名为 get() 的方法会给你相同的结果:
实例
获取 “model” 键的值:
x = thisdict.get("model")
更改值
您可以通过引用其键名来更改特定项的值:
实例
把 "year" 改为 2019:
thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019
#结果为:{'brand': 'Porsche', 'model': '911', '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() 构造函数
也可以使用 dict() 构造函数创建新的字典:
实例
thisdict = dict(brand="Porsche", model="911", year=1963)
# 请注意,关键字不是字符串字面量
# 请注意,使用了等号而不是冒号来赋值
print(thisdict)
#结果为:{'brand': 'Porsche', 'model': '911', 'year': 1963}
字典方法
Python 提供一组可以在字典上使用的内建方法。
| 方法 | 描述 | 
|---|---|
| clear() | 删除字典中的所有元素 | 
| copy() | 返回字典的副本 | 
| get() | 返回指定键的值 | 
| fromkeys() | 返回拥有指定键和值的字典 | 
| items() | 返回包含每个键值对的元组的列表 | 
| keys() | 返回包含字典键的列表 | 
| pop() | 删除拥有指定键的元素 | 
| popitem() | 删除最后插入的键值对 | 
| setdefault() | 返回指定键的值。如果该键不存在,则插入具有指定值的键。 | 
| update() | 使用指定的键值对字典进行更新 | 
| values() | 返回字典中所有值的列表 | 
Python3 字典浅析的更多相关文章
- python3 字典常见用法总结
		python3 字典常见用法总结 Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表 ... 
- Python3 字典 get() 方法
		Python3 字典 描述 Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: dict.get(key, default=None) 参数 ... 
- Python3 字典 fromkeys()方法
		Python3 字典 描述 Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值. 语法 fromkeys()方法语法: ... 
- Python3 字典 update() 方法
		Python3 字典 描述 Python 字典 update() 函数把字典dict2的键/值对更新到dict里. 语法 update()方法语法: dict.update(dict2) 参数 di ... 
- Python3 字典 pop() 方法
		Python3 字典 描述 Python 字典 pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值.key值必须给出. 否则,返回default值. 语法 pop()方法语法: ... 
- Python3 字典 clear()方法
		Python3 字典 描述 Python 字典 clear() 函数用于删除字典内所有元素. 语法 clear()方法语法: dict.clear() 参数 NA. 返回值 该函数没有任何返回值. ... 
- Python3 字典(map)
		ayout: post title: Python3 字典(map) author: "luowentaoaa" catalog: true tags: mathjax: true ... 
- python系列七:Python3字典dict
		#!/usr/bin/python #Python3 字典#字典是支持无限极嵌套的citys={ '北京':{ '朝阳':['国贸','CBD','天阶','我爱我家','链接地产 ... 
- python011 Python3 字典
		Python3 字典字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如 ... 
随机推荐
- Jenkins持续集成(上)-Windows下安装Jenkins
			环境:Windows 2008 R2.Jenkins2.235.1: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成SLB.配置管理.Jenkins)> ... 
- 总结笔记 | 深度学习之Pytorch入门教程
			笔记作者:王博Kings 目录 一.整体学习的建议 1.1 如何成为Pytorch大神? 1.2 如何读Github代码? 1.3 代码能力太弱怎么办? 二.Pytorch与TensorFlow概述 ... 
- 在Springboot中写使用jsp
			jsp其实可以看成一种模板语言,在Springboot中我们同样可以使用jsp.我们可以把引入jsp的过程分为三步: 第一步:POM文件加依赖: <!--引入springboot内嵌的tomca ... 
- 论如何实现最强大脑黑白迭代(c++附代码)
			最近看了最强大脑,对节目中的黑白迭代很感兴趣,就自己写了一个500多行的程序.燃鹅,只实现了一部分功能,还非常简陋.无奈之下,我只好从网上下载了一份代码,然后自己稍加修改就成了一份半改编的代码. 虽然 ... 
- jquary常见问题总结
			如何调用本地json 1. 调用 <script src="solution.json?cb=readData"></script> 2. json 修改 ... 
- 跳转语句—break,continue,goto
			#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ... 
- JSONP跨域和CORS跨域的区别
			跨域: 由于浏览器中的javascript的同源策略,同源策略会阻止一个域的JavaScript脚本和另一个域的内容进行交互. 同源:协议,域名,端口,三者有一个不同即为跨域. 解决跨域有以下多种方法 ... 
- SpringBoot---SpringMVC关于拦截器的一些问题总结
			SpringBoot---SpringMVC关于拦截器的一些问题总结 环境: IDEA :2020.1 Maven:3.5.6 SpringBoot: 2.3.2 1.直接在地址栏输入 http:// ... 
- troubleshoot之:GC调优到底是什么
			目录 简介 那些GC的默认值 GC的选择 GC的最大线程个数 初始化heap size 最大的heap size 分层编译技术 我们到底要什么 最大暂停时间 吞吐率 简介 我们经常会听到甚至需要自己动 ... 
- redis安装及性能测试
			Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库.通常被称为数据结构服务器,因为值(value)可以是 字符串(Stri ... 
