【python】字典、列表、集合综合练习

1、练习1(字典)

字典dic,dic = {‘k1’:‘v1’, ‘k2’: ‘v2’, ‘k3’: [11,22,33]}

(1). 请循环输出所有的key

dic = {"k1": "v1", "k2": "v2", "k3": [11, 22, 33]}
for k in dic.keys():print(k)
k1
k2
k3

(2). 请循环输出所有的value

for v in dic.values():print(v)
v1
v2
[11, 22, 33]

(3). 请循环输出所有的key和value

for k, v in dic.items():print(k, v)
k1 v1
k2 v2
k3 [11, 22, 33]

(4). 请在字典中添加一个键值对,“k4”: “v4”,输出添加后的字典

dic["k4"] = "v4"
print(dic)
{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

(5). 请在修改字典中 “k1” 对应的值为 “kidd”,输出修改后的字典

dic["k1"] = "kidd"
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}

(6). 请在k3对应的值中追加一个元素 44,输出修改后的字典

dic["k3"].append(44)
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 22, 33, 44], 'k4': 'v4'}

(7). 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典

dic["k3"].insert(1, 18)
print(dic)
{'k1': 'kidd', 'k2': 'v2', 'k3': [11, 18, 22, 33, 44], 'k4': 'v4'}

2、练习2(列表字典)

有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {‘k1’: 大于66的所有值列表, ‘k2’: 小于66的所有值列表}

li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
v1 = [i for i in li if i > 66]
v2 = [j for j in li if j < 66]
res_dic = {"k1":v1,"k2":v2}
print(res_dic)
{'k1': [77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}

3、练习3(字典)

  1. 创建一个字典,包含你最喜欢的三种水果和它们的价格。
  2. 打印字典中所有键值对。
dic_fruits = {"apple": 2, "banana": 4, "orange": 5}
for k, v in dic_fruits.items():print(k, v)
apple 2
banana 4
orange 5
  1. 添加一种新的水果和它的价格。
dic_fruits["mango"] = 7
print(dic_fruits)
{'apple': 2, 'banana': 4, 'orange': 5, 'mango': 7}
  1. 修改一种水果的价格。
dic_fruits["apple"] = 3
print(dic_fruits)
{'apple': 3, 'banana': 4, 'orange': 5, 'mango': 7}
  1. 删除一种水果及其价格。
del dic_fruits['banana']
print(dic_fruits)
{'apple': 3, 'orange': 5, 'mango': 7}

4、练习4(字典)

  1. 创建一个字典,包含你的朋友的姓名和他们的年龄。
  2. 使用循环打印出每个朋友的姓名和年龄。
frinds_dic = {"zl": 23, "zff": 24, "jwj": 22}
for k, v in frinds_dic.items():print(f"姓名:{k}, 年龄:{v}")
姓名:zl, 年龄:23
姓名:zff, 年龄:24
姓名:jwj, 年龄:22
  1. 将朋友的年龄加上 1,并更新字典中对应的值。
frinds_dic = {"zl": 23, "zff": 24, "jwj": 22}
for name,age in frinds_dic.items():age = age + 1frinds_dic[name] = age
print(frinds_dic)
{'zl': 24, 'zff': 25, 'jwj': 23}

5、练习5(列表字典)

# 声明一个字典保存一个学生的信息,学生信息中包括: 姓名、年龄、成绩(单科)、手机号、性别(男、女、不明)
student = {"name": "张三", "age": "23", "score": 88, "tel": "23423532", "gender": "男"}
# 声明一个列表,在列表中保存6个学生的信息(6个题1中的字典)
students = [{"name": "张三", "age": 23, "score": 88, "tel": "23423532", "gender": "男"},{"name": "李四", "age": 26, "score": 80, "tel": "12533453", "gender": "女"},{"name": "王五", "age": 15, "score": 58, "tel": "56453453", "gender": "男"},{"name": "赵六", "age": 16, "score": 57, "tel": "86786785", "gender": "不明"},{"name": "小明", "age": 18, "score": 98, "tel": "23434656", "gender": "女"},{"name": "小红", "age": 23, "score": 72, "tel": "67867868", "gender": "女"},
]

1.统计不及格学生的个数
2.打印不及格学生的名字和对应的成绩

students = [{"name": "张三", "age": 23, "score": 88, "tel": "23423532", "gender": "男"},{"name": "李四", "age": 26, "score": 80, "tel": "12533453", "gender": "女"},{"name": "王五", "age": 15, "score": 58, "tel": "56453453", "gender": "男"},{"name": "赵六", "age": 16, "score": 57, "tel": "86786785", "gender": "不明"},{"name": "小明", "age": 18, "score": 98, "tel": "23434656", "gender": "女"},{"name": "小红", "age": 23, "score": 72, "tel": "67867868", "gender": "女"},
]
num = 0
for i in students:if i["score"] < 60:num += 1print(i["name"],i["score"])
print(num)
王五 58
赵六 57
2

3.统计未成年学生的个数

teen_student = 0
for i in students:if i["age"] < 18:teen_student += 1
print(teen_student)
2

4.打印手机尾号是8的学生的名字

for i in students:if i["tel"][-1] == "8":print(i["name"])
小红

5.打印最高分和对应的学生的名字

max_score = 0
for i in students:if i["score"] > max_score:max_score = i["score"]max_student = i["name"]
print(max_score,max_student)
98 小明

6.将列表按学生成绩从大到小排序

scores =[i["score"] for i in students]
print(sorted(scores,reverse=True))
[98, 88, 80, 72, 58, 57]

7.删除性别不明的所有学生

for i in students:if i["gender"]=="不明":students.remove(i)
print(students)
[{'name': '张三', 'age': 23, 'score': 88, 'tel': '23423532', 'gender': '男'}, {'name': '李四', 'age': 26, 'score': 80, 'tel': '12533453', 'gender': '女'}, {'name': '王五', 'age': 15, 'score': 58, 'tel': '56453453', 'gender': '男'}, {'name': '小明', 'age': 18, 'score': 98, 'tel': '23434656', 'gender': '女'}, {'name': '小红', 'age': 23, 'score': 72, 'tel': '67867868', 'gender': '女'}]

6、练习6(列表)

#用三个列表表示三门学科的选课学生姓名(一个学生可以同时选多门课)
chinese = ['小明','小张','小黄','小杨']
math = ['小黄','小李','小王','小杨','小周']
english = ['小杨','小张','小吴','小冯','小周']
# 1、求选课学生总共有多少人
chinese = ["小明", "小张", "小黄", "小杨"]
math = ["小黄", "小李", "小王", "小杨", "小周"]
english = ["小杨", "小张", "小吴", "小冯", "小周"]
students = []
for i in chinese + math + english:if i not in students:students.append(i)
print(students)
print(len(students))
['小明', '小张', '小黄', '小杨', '小李', '小王', '小周', '小吴', '小冯']
9
#2、求只选了第一个学科的人的数量和对应的名字	
num = 0
for i in chinese:if i not in math + english:print(i)num += 1
print(num)
小明
1
# 3、求只选了一门学科的学生的数量和对应的名字
set1 = set(chinese)
set2 = set(math)
set3 = set(english)
num1 = 0
for i in students:if i not in (set1 & set2) | (set1 & set3) | (set2 & set3):num1 += 1print(i)
print(num1)
小明
小李
小王
小吴
小冯
5
# 4、求只选了两门学科的学生的数量和对应的名字(选做)
num4 = 0
for i in students:if i in ((set1 & set2) | (set1 & set3) | (set2 & set3)) - (set1 & set2 & set3):num4 += 1print(i)
print(num4)
小张
小黄
小周
3
#5、求选了三门学生的学生的数量和对应的名字(选做)
num5 = 0
for i in students:if i in set1 & set2 & set3:num5 += 1print(i)
print(num5)
小杨
1

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

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

相关文章

2024 WAIC|第四范式胡时伟分享通往AGI之路:行业大模型汇聚成海

7月4日&#xff0c;2024世界人工智能大会&#xff08;WAIC&#xff09;正式开幕。此次大会围绕核心技术、智能终端、应用赋能等板块展开&#xff0c;展览规模、参展企业数均达历史最高。第四范式受邀参展&#xff0c;集中展示公司十年来在行业大模型产业应用方面的实践。在当天…

【知网CNKI-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

dockerfile里的copy只能使用相对路径吗?

在 Dockerfile 中&#xff0c;COPY 指令既可以使用相对路径&#xff0c;也可以使用绝对路径&#xff08;但绝对路径的使用方式和上下文有关&#xff09;。不过&#xff0c;在实践中&#xff0c;你通常会看到使用相对路径&#xff0c;因为 Dockerfile 的构建上下文&#xff08;b…

NewspaceGPT带你玩系列之【Song Maker】

目录 注册一个账号&#xff0c;用qq邮箱&#xff0c;然后登录选一个可用的Plus&#xff0c;不要选3.5探索GPT今天的主角是【Song Maker】翻译一下用汉语吧我写词。你谱曲和其他伴奏&#xff0c;例子&#xff1a; 摇滚&#xff0c;忧伤&#xff0c;吉他&#xff0c;鼓&#xff0…

聊一聊Oracle的空间计算函数SDO_NN

网上对这个函数介绍的很少&#xff0c;对使用上也很模糊&#xff0c;我来补充一下&#xff0c;让大家了解一下这个函数 from test1 y, test2 p where SDO_NN(p.geom,y.geom,sdo_num_res1, 0.5 )TRUE; 上面这个表达式的含义也就是说在test2中找到一个距离test1很近的&#x…

Android约束布局的概念与属性(1)

目录 1&#xff0e;相对定位约束2&#xff0e;居中和偏移约束 约束布局&#xff08;ConstraintLayout&#xff09;是当前Android Studio默认的布局方式&#xff0c;也是最灵活的一种布局方式。约束布局推荐使用所见即所得的模式进行布局&#xff0c;约束布局的大部分布局可以通…

超详细的 Linux 环境下 Anaconda 安装与使用教程

超详细的 Linux 环境下 Anaconda 安装与使用教程 前言 在数据科学和机器学习领域&#xff0c;Anaconda 是一个非常受欢迎的发行版&#xff0c;提供了许多常用的包和工具。本文将详细介绍如何在 Linux 系统上安装和配置 Anaconda 环境&#xff0c;并展示如何高效地使用它。 一…

CentOS7下安装Doris

Doris简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库&#xff0c;以高效、简单、统一的特点被人们所熟知&#xff0c;仅需亚秒级响应时间即可返回海量数据下的查询结果&#xff0c;不仅可以支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场…

从0到1搭建个性化推送引擎:百数教学带你掌握核心技术

百数低代码的推送提醒功能允许用户高度自定义提醒规则&#xff0c;支持多种提醒方式&#xff08;如钉钉、企业微信、微信、短信、语音、邮件等&#xff09;&#xff0c;以满足不同场景下的需求。 通过预设字段和模板&#xff0c;用户可以快速编辑提醒内容&#xff0c;减少重复…

BaseServlet的封装

创建BaseServlet的必要性 如果不创建BaseServlet&#xff0c;现在我们只要实现一个功能&#xff0c;我们就需要创建一个servlet! 例如:用户模块(登录&#xff0c;注册&#xff0c;退出录&#xff0c;激活&#xff0c;发送邮件等等功能) 也就是说&#xff0c;我们必须要创建一…

idea无法实力化id

解决&#xff1a;https://blog.csdn.net/qq_41264674/article/details/83409810?ops_request_misc&request_id&biz_id102&utm_termSerializable%E4%B8%8D%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E5%AE%9E%E5%8A%9B%E5%8C%96id&utm_mediumdistribute.pc_search_…

java-数据结构与算法-02-数据结构-03-递归

1. 概述 定义 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances…

IT项目经理转行大模型,项目经理的进来,你想知道的都在这里非常详细

大模型&#xff08;如人工智能、机器学习和深度学习模型&#xff09;可以通过提供数据驱动的决策支持、自动化流程和预测分析来赋能IT项目经理。这些工具可以帮助项目经理更有效地管理项目&#xff0c;预测潜在的风险&#xff0c;并提高项目成功的可能性。以下是IT项目经理如何…

IPD流程学习笔记

一、前言 互联网行业讲究的是快速试错&#xff0c;所以IPD流程的应用并不多&#xff0c;但是传统企业数字化转型中&#xff0c;怎么确保项目投入可以切合市场需求&#xff0c;有较好的ROI及落地性&#xff0c;轻量级的IPD还是很有必要了解下的&#xff0c;特别是重资产类的业务…

探讨大数据在视频汇聚平台LntonCVS国标GB28181协议中的应用

随着摄像头和视频监控系统的普及和数字化程度的提高&#xff0c;视频监控系统产生的数据量急剧增加。大数据技术因其优秀的数据管理、分析和利用能力&#xff0c;成为提升视频监控系统效能和价值的重要工具。 大数据技术可以将视频监控数据与其他数据源进行融合分析&#xff0c…

libaom 编码器实验 AV1 标准 SVC 分层编码

SVC编码 视频SVC编码&#xff0c;即Scalable Video Coding&#xff08;可适性视讯编码或可分级视频编码&#xff09;&#xff0c;是H.264/MPEG-4 AVC编码的一种扩展&#xff0c;它提供了更大的编码弹性&#xff0c;并且具有时间可适性&#xff08;Temporal Scalability&#x…

单向链表的概念和结构

文章目录 1.链表的概念及结构2.单链表的实现 1.链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表的结构跟火车车厢相似&#xff0c;淡季时车次的车厢会相应减少&…

【基础算法总结】分治—归并

分治—归并 1.排序数组2.交易逆序对的总数3.计算右侧小于当前元素的个数4.翻转对 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.排序数组 …

NFTScan | 07.01~07.07 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2024.07.01~ 2024.07.07 NFT Hot News 01/ 数据&#xff1a;Mad Lads 地板价回升至 100 SOL 上方&#xff0c;24 小时涨幅为 13.65% 7 月 1 日&#xff0c;据数据显示&#xff0c;Solana…

ARM架构以及程序运行解析

文章目录 1. ARM架构 2. ARM处理器程序运行的过程 3. 示例 3. 基于ARM架构的STM32单片机 1. 运行模式 2. 寄存器组 3. STM32的基本结构 4. STM32的运行模式 4. 寄存器组详解 1. 未备份寄存器 2. 备份寄存器 3. 程序计数器 4. 程序状态寄存器 5. CPSR和SPSR寄存器…