首页 > 编程语言 >Python字典类型及操作

Python字典类型及操作

时间:2022-12-26 20:07:24浏览次数:36  
标签:遍历 Python menu 条目 语法 类型 dicAreas 字典


文章目录

  • ​​一. 字典类型定义(dict)​​
  • ​​1. 映射​​
  • ​​2. 字典类型是映射的体现​​
  • ​​3. 创建字典​​
  • ​​(1). 直接创建字典​​
  • ​​(2). 使用内置函数dict()创建字典​​
  • ​​(3). 字典的键和值的注意点​​
  • ​​1. 键具有唯一性​​
  • ​​2. 字典中的键必须是不可变类型​​
  • ​​4. 字典的访问​​
  • ​​1. 定义​​
  • ​​2. 通过键来访问值的所有部分:​​
  • ​​3. 通过键来访问值的某一部分:语法格式​​
  • ​​二. 字典处理函数及方法​​
  • ​​三. 字典的基本操作​​
  • ​​1. 字典的更新​​
  • ​​(1). 给字典添加条目​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​(2). 修改字典条目​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​2. 删除字典的条目​​
  • ​​(1). 使用del命令删除指定条目​​
  • ​​1. 语法​​
  • ​​(2). 使用pop()方法删除指定条目​​
  • ​​1. 语法​​
  • ​​2. 注意​​
  • ​​(3). 使用popitem()方法随机删除字典条目​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​3. 注意​​
  • ​​(4). 使用clear()方法清空字典条目​​
  • ​​1. 语法​​
  • ​​2. 注意​​
  • ​​(5). 直接删除整个字典​​
  • ​​1. 语法​​
  • ​​2. 注意​​
  • ​​3. 查找字典条目​​
  • ​​(1). 成员运算符in​​
  • ​​1. 语法​​
  • ​​(2). 用get()方法获取条目的值​​
  • ​​1. 语法​​
  • ​​四. 字典的整体操作​​
  • ​​1. 字典的遍历​​
  • ​​(1). 遍历字典中所有的键​​
  • ​​1. 语法​​
  • ​​(2). 遍历字典中所有的值​​
  • ​​1. 语法​​
  • ​​(3). 遍历字典中所有的条目​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​2. 字典的排序​​
  • ​​3. 字典的合并​​
  • ​​(1). 使用for循环​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​(2). 使用字典的update()方法​​
  • ​​1. 定义​​
  • ​​2. 语法​​
  • ​​3. 注意​​
  • ​​(3). 使用dict()函数​​
  • ​​五. 字典的存储​​
  • ​​1. 列表中存储字典​​
  • ​​2. 字典中存储列表​​
  • ​​3. 字典中存储字典​​
  • ​​六. 字典类型应用场景​​
  • ​​1. 对映射的表达​​
  • ​​2. 元素遍历​​

一. 字典类型定义(dict)

1. 映射

映射是一种键(索引)和值(数据)的对应关系

Python字典类型及操作_元组


Python字典类型及操作_for循环_02


Python字典类型及操作_fish_03

2. 字典类型是映射的体现

Python语言中的字典就可以用来存储映射这种对应关系

键值对:键是数据索引的扩展

字典是键值对的集合,键值对之间无序
字典中键-值对的排列顺序和添加顺序没有必然联系

字典是 Python 最强大的数据类型之一,通过键-值对的方式建立数据对象之间的映射关系。字典的每个键-值对用冒号:分割,每个键-值对间用逗号,分隔开,字典则包含在{}中

d = { key1 : value1, key2 : value2 }

3. 创建字典

字典是通过键、值对的形式存储数据之间映射关系的一种数据结构

而创建字典的过程就是创建键与值之间的关联

(1). 直接创建字典

语法:

字典变量 = {键1:值1,键2:值2,....}
创建一个空的字典

字典名 = {}

dicAreas = {}

(2). 使用内置函数dict()创建字典

Python语言支持将一组双元素序列转换为字典

存储双元素的可以是元组、也可以是列表,但是一定只能包含两个元素,否则创建字典会失败

语法

items = [('俄罗斯', 1707.5), ('加拿大', 997.1), ('中国', 960.1)]
dicAreas = dict(items)
>>>dicAreas
{'俄罗斯': 1707.5, '加拿大': 997.1, '中国': 960.1}

(3). 字典的键和值的注意点

1. 键具有唯一性

字典中不允许出现相同的键,但是不同的键允许对应相同的值

>>> items = [('俄罗斯', 1707.5), ('加拿大', 997.1), ('中国', 960.1), ('俄罗斯',1700)]
>>> dicAreas = dict(items)
>>> dicAreas
{'俄罗斯': 1700, '加拿大': 997.1, '中国': 960.1}

其中上面有两个俄罗斯的元组,但是最终将后一个元组保存在字典中
2. 字典中的键必须是不可变类型

一般是字符串、数字、或者元组,而值却可以是任何数据类型

>>> dicAreas = {'俄罗斯': [1707.5, '莫斯科'], '加拿大': [997.1,'渥太华'], '中国': [960.1, '北京']}
>>> dicAreas
{'俄罗斯': [1707.5, '莫斯科'], '加拿大': [997.1, '渥太华'], '中国': [960.1, '北京']}

如果在字典的定义中确实需要使用多个子元素联合充当键,不能使用列表,可以使用元组
>>> dicAreas = {(1707.5, '莫斯科'):'俄罗斯', (997.1,'渥太华'):'加拿大',(960.1, '北京'):'中国'}
>>> dicAreas
{(1707.5, '莫斯科'): '俄罗斯', (997.1, '渥太华'): '加拿大', (960.1, '北京'): '中国'}

4. 字典的访问

1. 定义

字典中存储了若干条目,但都是无序的,这意味着字典没有索引的概念,它不通过索引访问条目,而是通过键访问条目

字典只能通过键到值的单向访问,不能反过来通过值来访问键

2. 通过键来访问值的所有部分:

语法格式

字典名[键]
>>>dicAreas
{'俄罗斯': 1707.5, '加拿大': 997.1, '中国': 960.1}
>>>dicAreas['中国']
960.1

注:

当访问了一个不存在的键则会报错
当使用索引访问字典也会报错

3. 通过键来访问值的某一部分:语法格式

前提是:字典中的值是个序列类型

语法格式:

字典名[键][值的索引值]
dicAreas = {'俄罗斯': [1707.5, '莫斯科'], '加拿大': [997.1,'渥太华'], '中国': [960.1, '北京']}
>>> dicAreas ['中国']
[960.1, '北京']
>>> dicAreas ['中国'][0]
960.1

二. 字典处理函数及方法

Python字典类型及操作_元组_04


Python字典类型及操作_fish_05


Python字典类型及操作_for循环_06


Python字典类型及操作_fish_07


Python字典类型及操作_fish_08

三. 字典的基本操作

字典存放的是数据和数据之间的映射关系,对应的条目是“键值对”

1. 字典的更新

(1). 给字典添加条目

1. 定义

给字典添加条目即添加一对新的“键值对”

字典是一种动态数据结构,可随时在字典中添加键-值对。要添加键-值对时,可依次指定字典名、键和键对应的值。

2. 语法

通过赋值语句完成键值对的映射

字典名[键] = 值
>>> dicAreas = {}
>>> dicAreas['俄罗斯'] = 1707.5
>>> dicAreas['中国'] = 960.1
>>> dicAreas
{'俄罗斯': 1707.5, '中国': 960.1}
# 创建并初始化menu字典
menu = {'fish':40, 'pork':30, 'potato':15, 'noodles':10}
# 向menu字典中添加菜名和价格
menu['juice'] = 12
menu['egg'] = 5
# 输出新的menu
print(menu)

输出结果:
{'fish': 40,'pork': 30,'potato': 15,'noodles': 10, 'juice': 12,'egg': 5}

(2). 修改字典条目

1. 定义

语法和添加字典条目语法相同,通过赋值语句进行修改

2. 语法
字典名[键] = 值

注:用于修改的条目,指定的键必须对应已存在的条目

>>> dicAreas
{'俄罗斯': 1707.5, '中国': 960.1}
>>> dicAreas['俄罗斯'] = 1707
>>> dicAreas
{'俄罗斯': 1707, '中国': 960.1}

2. 删除字典的条目

(1). 使用del命令删除指定条目

1. 语法

del 字典名[键]

(2). 使用pop()方法删除指定条目

1. 语法

字典名.pop(键, 默认值)

当删除字典中不存指定的键,系统返回默认值

字典名.pop(键)

当删除字典中不存在的指定的键,系统会报错
2. 注意
  1. 使用pop()方法删除指定键的对应条目会有一个返回值
  2. 使用pop()方法,最少包含一个用于指定键的参数,没有参数,系统报错

(3). 使用popitem()方法随机删除字典条目

1. 定义

popitem()方法随机删除并返回某个完整的条目

2. 语法

字典名.popitem()

3. 注意

Python3.6版本之后,popitem()方法默认删除并返回最后一个字典的条目

popitem()方法没有参数

(4). 使用clear()方法清空字典条目

1. 语法

字典名.clear()

2. 注意

使用clear()方法的字典虽然删除了所有的条目,但是依然是一个字典

(5). 直接删除整个字典

1. 语法

del 字典名

2. 注意

del操作删除了字典的本身,即从内存中注销了该字典的对象

3. 查找字典条目

(1). 成员运算符in

1. 语法

键 in 字典

当查找的条目在字典中,返回值为True
反之为False

(2). 用get()方法获取条目的值

1. 语法

字典名.get(键, 默认值)

按照指定的键访问字典对应的条目,如果指定的键在字典中,返回对应的值
如果指定的值不在字典中,返回默认值

字典名.get(键)

当指定的键不在字典中,系统执行语句但不返回任何信息

四. 字典的整体操作

1. 字典的遍历

和序列的遍历操作类似,字典的遍历也是通过for循环来实现的

(1). 遍历字典中所有的键

1. 语法

字典中有一个称为keys()的方法可以用来返回字典中所有的键

keys()方法配合for循环就可以遍历字典中的每一个键

for key in dicAreas.keys():
print(key)
# 创建并初始化menu菜单字典
menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}
# 利用keys()方法遍历输出键
for key in menu.keys():
print('food_name:'+key)

输出结果:
food_name:fish
food_name:pork
food_name:potato
food_name:lamb

在进而通过键与值的映射就可以访问对应的值,从而遍历所有的条目

通过
print(key, dicAreas[key])
就可以输出键和值

(2). 遍历字典中所有的值

1. 语法

字典提供一个用来返回所有值的方法values()

使用values()方法配合for循环一起使用就可以遍历所有值

for value in dicAreas.values():
print(values)
# 创建并初始化menu菜单字典
menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}
# 利用values()方法遍历输出值
for value in menu.values():
print('food_price:'+value)

输出结果:
food_price:40
food_price:30
food_price:20
food_price:50

虽然通过values()方法可以遍历字典所有的值,但是却无法映射到对应的键,进而无法完整遍历条目信息

(3). 遍历字典中所有的条目

1. 定义

keys()方法和values()方法只能单独给出字典的键或值的内容

字典items()方法可以以(键,值)形式返回所有条目

2. 语法
for item in dicAreas.items():
print(item)
# 创建并初始化menu菜单字典
menu={'fish':'40','pork':'30','potato':'20','lamb':'50'}
# 利用items()方法遍历输出键和值
for key,value in menu.items():
print('\nkey:'+key)
print('value:'+value)

输出结果:
key:fish
value:40

key:pork
value:30

key:potato
value:20

key:lamb
value:50

注:通过items()方法遍历得到的每个条目是一个元组,对于这样的元组,既可以整体访问,也可以分别对其的键和值分别访问

2. 字典的排序

3. 字典的合并

(1). 使用for循环

1. 定义

通过for循环遍历字典将其中的条目逐条追加到另一个字典中

2. 语法
for k, v in dicOthers.items():
dicAreas [k] = v

(2). 使用字典的update()方法

1. 定义

使用update()方法,将参数字典添加到调用方法的字典中

2. 语法

字典名.update(参数字典名)

dicAreas.update(dicOthers)
3. 注意

update()方法更新的是调用方法的字典,作为参数的字典内容不会发生变化

(3). 使用dict()函数

五. 字典的存储

1. 列表中存储字典

# 创建3个菜单字典,包含菜名和价格
menu1 = {'fish':40, 'pork':30, 'potato':20,'noodles':15}
menu2 = {'chicken':30, 'corn':55, 'lamb':65,'onion':12}
menu3 = {'bacon':36, 'beaf':48, 'crab':72,'eggs':7}
# 将3个菜单字典存储到列表menu_total中
menu_total = [menu1,menu2,menu3]
# 输出列表
print(menu_total)

输出结果:
[{'fish': 40, 'pork': 30, 'potato': 20, 'noodles': 15}, {'chicken': 30, 'corn': 55, 'lamb': 65, 'onion': 12}, {'bacon': 36, 'beaf': 48, 'crab': 72, 'eggs': 7}]

2. 字典中存储列表

# 初始化menu菜单,里面包含配料列表
menu = {'fish':['vinegar','soy','salt'], 'pork':['sugar','wine']}
# 输出pork这道菜的配料
print('The burding of pork is:',menu['pork'])

输出结果:
The burding of pork is: ['sugar', 'wine']

3. 字典中存储字典

# 创建一个字典menu_sum,里面包含两个子菜单字典menu1和menu2
menu_sum = {
'menu1':{'fish':40, 'pork':30, 'potato':20,'noodles':15},
'menu2':{'chicken':30, 'corn':55, 'lamb':65,'onion':12}
}
# 输出menu1和menu2中的菜名和价格
print(menu_sum['menu1'])
print(menu_sum['menu2'])

输出结果:
{'fish': 40, 'pork': 30, 'potato': 20, 'noodles': 15}
{'chicken': 30, 'corn': 55, 'lamb': 65, 'onion': 12}

六. 字典类型应用场景

1. 对映射的表达

Python字典类型及操作_元组_09

2. 元素遍历

Python字典类型及操作_fish_10


标签:遍历,Python,menu,条目,语法,类型,dicAreas,字典
From: https://blog.51cto.com/u_15923298/5970744

相关文章

  • Python集合类型及操作
    文章目录​​一.集合类型概述(set)​​​​1.定义​​​​2.特点​​​​二.集合的创建与访问​​​​1.直接创建集合​​​​(1).定义​​​​(2).语法​​​​(3).......
  • Python网络爬虫概述
    文章目录​​一.掌握定向网络数据爬取和网页解析的基本能力​​​​二.python开发工具选择​​​​1.文本工具类IDE​​​​2.集成工具类IDE​​一.掌握定向网络数据爬......
  • Python文件与异常
    文章目录​​一.文件的基础知识​​​​1.文件与文件类型​​​​(1).定义​​​​(2).文件名的组成​​​​(3).文件类型​​​​2.目录与文件路径​​​​(1).目录......
  • Python安装教程
    一.Python需要安装什么因为Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。把Python安装到你的电......
  • python解析rosbag
      #coding:utf-8#!/usr/bin/python#Extractimagesfromabagfile.importsysimportosimportroslib#roslib.load_manifest(PKG)importrosbagimpo......
  • Python常用库的使用
    文章目录​​一.Python计算生态​​​​二.如何导入第三方库​​​​方式一:pip命令行直接安装​​​​方法二:手动下载第三方库,再使用pip安装(适用部分库直接pip安装失败)​......
  • 基本数据类型
    任何类型的和字符串相加,最后都是字符串类型true和false参加加法时,true当一来看,false当0看undefind参加加减aN乘除时,最后显示NaNnull表示空的null也是一种数据类型,他表......
  • 对象数据类型
      代码示例:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><script>va......
  • 字典生成工具 -- CUPP
    你别怕,不回你消息的那个人,也总会遇到一个不回她消息的人。。。今天给大家介绍一款字典生成工具:CUPP一、环境kali2019.4python3二、安装过程:复制到本地安装包​​​ht......
  • 7. str|list|dict|tupe类型转换
    类型的转换#常用的字符串转换#int、str、bool、list、tuple、dict、None#1.int和strv1=int('123')v2=str(123)#2.list和tuplev3=tuple([1,2,3,4])......