IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python中的字典 -> 正文阅读

[Python知识库]python中的字典

目录

一、使用字典

二、遍历字典


???????

一、使用字典

在python中,字典是一系列键值对。每个键都与一个值相关联,可用键来访问值。与键相关联的值可以是数、字符串、列表乃至字典,可将任何python对象用作字典中的值。

字典用花括号{ }来表示,其中包含一系列键值对。键和值之间用冒号:分割,键值对之间用逗号,分割。

alien_0={'color':'green'} #color为键,green为与之相关联的值

1.访问字典中的值

要获取与键相关联的值,可依次指定字典名和键(放在方括号中)

alien_0={'color':'green','points':'5'}
print(alien_0['color'])
new_points=alien_0['points']      #从字典中获取与键points相关联的值,并赋值给变量
print(f"You just earn {new_points} points.")
green
You just earn 5 points.

2.添加键值对

要添加键值对,依次指定字典名、键和值要指明在哪个列表中添加,添加什么键,值是多少 (键要用方括号[ ]括起来)? 屏幕坐标系的原点为左上角

alien_0={'color':'green','points':'5'} 
print(alien_0)
alien_0['x_position']=0
alien_0['y_position']=25
print(alien_0)
{'color': 'green', 'points': '5'}
{'color': 'green', 'points': '5', 'x_position': 0, 'y_position': 25}

3.先创建一个空字典

先用花括号建一个空字典{ },再添加键值对。

alien_0 = {}             #先建空字典
alien_0['color']='green' #再向空字典中添加键值对
alien_0['points']='5'
print(alien_0)
{'color': 'green', 'points': '5'}

4.修改字典中的值

alien_0={'color':'green','points':5}
print(f"The alien color is {alien_0['color']}.")
alien_0['color']='yellow'      #修改键对应的值
print(f"The alien color now is {alien_0['color']}.")
The alien color is green.
The alien color now is yellow.

对一个能以不同速度的外星人进行位置跟踪

alien_0 = {'x_position':0,'y_position':25,'speed':'medium'} #字典中不会出现=,要用:链接键和值
print(f"Original position :{alien_0['x_position']}.")
if alien_0['speed'] == 'slow':  #在if语句中一般不用=,用==
	x_increment = 1
elif alien_0['speed'] == 'medium':
	x_increment = 2
else:
	x_increment = 3
alien_0['x_position'] = alien_0['x_position'] + x_increment #新位置=旧位置+移动距离
print(f"New position :{alien_0['x_position']}.")
Original position :0.
New position :2.

5.修改键值对 (del语句)

对于字典中不再需要的信息,可用del语句将相应的键值对删除,需指定字典名和要删除的键。删除的键值对会永远消失。

alien_0={'color':'green','points':5}
print(alien_0)
del alien_0['points']   #删除points键值对
print(alien_0)
{'color': 'green', 'points': 5}
{'color': 'green'}

6.由类似对象组成的字典

使用多行来定义字典时,输入{ }后按下回车键,下一行会自动缩进四个空格,输入键值对,加上逗号,再按回车键,将自动缩进后续键值对。在最后一个键值对后加上逗号,可为在下一行添加键值对做准备。最后一个键值对的下一行添加右侧花括号},并缩进四个空格。

favorite_languages={
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
language = favorite_languages['sarah'].title()
print(f"Sarah's favorite language is {language}.")
Sarah's favorite language is C.

7.使用get()来访问值,避免不存在值而错误

如果字典中不存在要访问的值,会存在键值错误(KeyError)。就字典而言,可用方法get( )在指定的键不存在时,返回一个默认值,从而避免这样的错误。

alien_0={'color':'green','speed':'medium'}
print(alien_0['points'])
KeyError: 'points'

方法get( )的第一个参数用于指定键,必不可少;第二个参数为指定键不存在时要返回的值,是可选的。如果没有指定第二个参数,且指定的键不存在,python将返回值None。

alien_0 = {'color':'green','speed':'medium'}
point_value = alien_0.get('points','No point value assigned.')
print(point_value)
No point value assigned.

二、遍历字典

1.遍历所有的键值对(方法item)

for循环来遍历,声明两个变量来存储键和值,再用方法items( ),最后分别打印两个变量的值

遍历整个列表,将列表中的键赋给变量key,将列表中的值赋给变量value。

字典中for循环中两个变量是可直接用的,替代字典中的键和值。

user_0 = {
	'username':'efermi',
	'first':'enrico',
	'last':'fermi',
	}
for key,value in user_0.items():  #要声明两个变量,用于存储键值对中的键和值,变量名可随意
#for k,v in user_0.items():
	print(f"Key:{key}")
	print(f"Value:{value}")
Key:username
Value:efermi
Key:first
Value:enrico
Key:last
Value:fermi

循环中键都为人名,值都为语言。利用变量为name和language,而不用key和value,可以让人更容易明白循环的作用。

favorite_language={
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
for name,language in favorite_language.items():  
#python遍历字典中的每个键值对,将键赋给变量name,将值赋给变量language.
	print(f"{name.title()}'s favorite language is {language.title()}.")
Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Phil's favorite language is Python.

2.遍历字典中的所有键(方法keys)

在不需要使用字典中的值时,方法keys( )返回键列表。使用方法keys( )可让代码更容易理解,但也可以忽略。

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
for name in favorite_language.keys():  #让python提取字典中所有的键,并依次赋给变量name
#for name in favorite_language:
	print(name.title())
Jen
Sarah
Edward
Phil

对部分键打印特殊消息:由字典中的键组成的列表赋值给变量,在后面循环中,可将变量名作为键来获得相应的值。?

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
friends = ['phil','sarah'] 
for name in favorite_language.keys():  #由字典中的键组成的列表赋给变量name
	print(f"Hi, {name.title()}")
	if name in friends:
#不需要对friends列表循环,只需要判断键(之前已经进行循环了)是否在列表中
		language = favorite_language[name].title() #将name的当前值做为键,获得对应的值
		print(f"\t{name.title()},I see you love {language}.")
Hi, Jen
Hi, Sarah
	Sarah,I see you love C.
Hi, Edward
Hi, Phil
	Phil,I see you love Python.

用方法keys( )确定某人是否接受了调查。方法keys( )并非只能用于遍历,实际上返回整个列表,包含字典中所有的键

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
if 'erin' not in favorite_language.keys():
	print("Erin,please take our poll!")
Erin,please take our poll!

?3.遍历字典中所有的值(方法values)

方法values( )返回一个值列表,不包含任何键。这种做法提取字典中所有的值,没有考虑是否重复。

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
print("The following languages have been mentioned:")
for language in favorite_language.values():
	print(language.title())
The following languages have been mentioned:
Python
C
Ruby
Python

4.按特定顺序遍历字典中所有的键(函数sorted)

一般情况下,遍历字典时将按照插入的顺序返回其中的元素。在有些情况下,需要按与此不同的顺序遍历字典。可在for循环中对返回的键进行排序,用函数sorted( )来获得按特定顺序排列的键列表的副本。

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
for name in sorted(favorite_language.keys()): #在for循环中对键进行了排序
	print(f"{name.title()},thank you for taking the poll.")
Edward,thank you for taking the poll.
Jen,thank you for taking the poll.
Phil,thank you for taking the poll.
Sarah,thank you for taking the poll.

5.删除字典中重复的值(函数set)

为剔除重复项,可使用函数set( ),让python找出列表中独一无二的元素。集合中的每一个元素都必须是独一无二的

favorite_language = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phil':'python',
	}
print("The following languages have been mentioned:")
for language in set(favorite_language.values()):
	print(language.title())
The following languages have been mentioned:
Python
C
Ruby

注意:可以使用一对花括号来直接创建集合,并用逗号分割元素。集合和字典和容易混淆,当花括号内没有键值对时,定义的可能时集合。不同于列表和字典,集合不会以特定的顺序存储元素。

>>> languages={'python','c','python','ruby'}
>>> languages
{'python', 'ruby', 'c'}

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:01:31  更:2021-08-19 12:03:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:27:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码