四、字典

news/2024/10/18 15:08:01/文章来源:https://www.cnblogs.com/pgl6/p/18282091

4.1 一个简单的字典(键值对)

# 外星人颜色(绿色)+分数(5)
alien_0 = {'color':'green','points':5}
print(alien_0['color']) #想要获取值(green),指定字典名(alie_0)+键(color) 
print(alien_0['points'])#green
#5

4.2 添加键值对

字典是一种动态结构,可随时在其中添加键值对,要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。

alien_0 = {'color':'green','points':5}
print(alien_0)
# 新增外星人的x坐标和y坐标信息
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}

① 修改字典中的值

alien_0 = {'color':'green','points':5,'speed':'medium'}
alien_0["color"] = 'yellow'# 向右移动外星人
# 根据当前速度确定将外星人向右移动多远
if alien_0['speed'] == 'slow':x_increment = 1
elif alien_0['speed'] == 'medium':x_increment = 2
else:x_increment = 3
# 新位置为旧位置‘x_position’加上移动距离x_increment
aien_0['x_positin'] = alien_0['x_position'] + x_increment
print(f"New x_position:{alien_0['x_position']}")#Original x-position:0
#New x-position:2

 ② 删除键值对

del 字典名+要删除的键:del alien_0['points']

③ 使用get()来访问值

alien_0={'color':'green','speed':'slow'}
print(alien_0['points'])# 直接输出会报错
point_value = alien_0.get('points','No points value assigned.') #不存在就返回第二个参数,没有设置参数就返回none
print(point_value)# No points value assigned

 ④ 遍历字典

user_0={'username':'efermi', 'first':'enrico', 'last':'fermi'}
for key,value in user_0.items(): #不加items()就会报错print(f"\nKey:(key)")print(f"Value:(value)")

 ⑤ 遍历字典中的所有键或者值

keys()方法-返回一个字典所有的键

favorite_languages = {'jen':'python','sarah':'c','edward':'ruby','phil':'python',
}
friends = ['phil','sarah']
for name in favorite_languages.keys(): #for name in sorted(favorite_languages.keys()):按顺序排列print(f"Hi{name.title()}.")if name in friends:language = favorite_languages[name].title()print(f"\t{name.title()},I see you love{language}!")

value()方法-返回字典中的所有值

favorite_languages = {'jen':'python','sarah':'c','edward':'ruby','phil':'python',
}
for name in favorite_languages.values(): #for name in set(favorite_languages.keys()):可去重print(language.title())

4.3 嵌套

① 在列表中存储字典

# 创建一个用于存储外星人的空列表
aliens = []
# 创建30个绿色的外星人
for alien_number in range(30):new_alien = {'color':'green','points':5,'speed':'slow'}aliens.append(new_alien)
# 显示前5个外星人
for alien in aliens[:5]:print(alien)
# 显示
print("....")
# 显示创建了多个外星人
print(f"Total number of aliens:{len(aiens)}")

② 在字典中存储列表

# 存储所点披萨的信息
pizza = {'crust':'thick','toppings':['mushrooms','extra cheese'],
}
# 概述所点的披萨
print(f"You ordered a{pizza['crust']}-crust pizza with the following toppings:")
# for循环遍历键‘toppings’
for topping in pizza['toppings']:print("\t" + topping)

③ 在字典存储字典

users = {'aeinstein':{'first':'albert','last':'einstein','location':'princeton',},
# 输出
# Username:aeinstein
#	 Full name: Albert Einstein
#	 Location: Princeton
# Username:mcurie
# 	 Full name: Marie Curie
#	 Location: Parisfor username,user_info in users.items():print(f"\Username:{username}")full_name = f"{user_infp['first']}(user_info['last']}"location = user_info['location']print(f"\tFull name:{full_name.title()}")print(f"\tLocation:{location.title()}")

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772619.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透

渗透测试 一、简介 ​ 渗透测试(Penetration Testing)是一种通过模拟攻击的技术与方法,挫败目标系统的安全控制措施并获得控制访问权的安全测试方法。 ​ 网络渗透测试主要依据CVE(Common Vulnerabilities and Exposures,通用漏洞与披露)已经发现的安全漏洞,模拟入侵者的攻击…

学习Java的第四周

第四周的学习记录来喽,本周的重点就是之前提到过的判断和循环(其中包括流程控制语句的三种结构:顺序、分支、循环;顺序结构即Java程序的默认流程,分支结构学了if判断语句的三种格式、switch语句练习和扩展知识,循环结构学了for循环格式和练习、累加思想和统计思想、while…

idea在pom中引入第三方依赖

项目右侧点击maven,点击加号(鼠标放上去会出现add maven project字样) 找到要导入的项目的pom文件选中,ok(这里我以及导入过了,所以ok是灰色) 回到原项目中,在pom中添加dependency 其中,artifactId是导入进来的姓名的名字,groupId是导入进来的项目的java目录下的包名…

计算机组成与体系结构-cache

概念 Cache,高速缓冲存储器。是解决CPU与主存之间速度不匹配而采用的一项重要技术,位于主存与CPU之间,由静态存储芯片(SRAM)组成,容量比较小,Cache存储了频繁访问的内存数据命中率 CPU欲访问的信息已在Cache中的比率,设在一段程序执行期间cache完成存取次数为NC,主存完成…

《Programming from the Ground Up》阅读笔记:p88-p94

《Programming from the Ground Up》学习第5天,p88-p94总结,总计7页。 一、技术总结 1.touppercase.s #PURPOSE: This program converts an input file #to an output file with all letters #converted to uppercase.#PROCESSING: #(1)Open the input file #(2)Open the o…

计算机网络第三讲 数据链路层

计算机网络第三讲 数据链路层 第一节:数据链路层功能 1. 概述2. 数据链路层的功能封装成帧透明传输差错控制实现无比特差错 不是可靠传输 丢失,乱序,重复无法解决

计算机组成与体系结构-层次化存储体系

将数据分为多个层次进行存储,以最优的控制调度算法和合理的成本,构成具有性能可接受的存储系统. 解决两个矛盾采用层次化存储体系,可以通过平衡存储介质的速度和成本得到最佳的存储效用。解决了主存容量不足与高成本的矛盾、CPU与主存速度不匹配的矛盾存储器分类RAM,随机存…

计算机网络第一讲

计算机网络第一讲 计算机网络概述考点一 1. 计算机网络的定义2. 计算机网络的组成物理组成工作方式英特网中的服务 考研中只有 TCP是可靠服务,其他都是不可靠的 面向连接的服务只有1.TCP 2.PPP 其他所有均无连接有应答服务:1.TCP 2.CSMA/CA3. 计算机网络的特点 共享4. 计算机…

计算机组成原理基础第7讲 输入输出系统

计算机组成原理基础第7讲 输入输出系统2. 输入输出系统的组成考点二:I/O接口接口的功能和组成I/O接口的基本组成3. 接口类型4. 程序查询方式考点三:中断系统

ABC273F Hammer 题解

dp的本质是拓扑(),感觉可以套一个线段树优化建图搞到 nlogn,好喔ABC273F Hammer 题解 题目大意 数轴上有 \(n\) 个锤子和 \(n\) 堵墙,第 \(i\) 个锤子位于 \(x_i\),第 \(i\) 堵墙位于 \(y_i\),第 \(i\) 个锤子可以对应的敲开第 \(i\) 堵墙。以原点为起点,给定终点 \(t\…

一款.NET开源、跨平台的DASH/HLS/MSS下载工具

前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、跨平台的DASH/HLS/MSS下载工具,并且支持点播和直播(DASH/HLS)的内容下载:N_m3u8DL-RE。 网络流媒体传输协议介绍 DASH DASH是一种基于HTTP的自适应流媒体网络传输协议,它允许流媒体内容以多个编码和比特率的形…