组合数据(Python实现)

一、主要目的

1.熟悉组合数据的类型。

2.掌握列表、元组、字典、集合等组合数据的创建、访问方法。

3.掌握组合数据推导式的使用方法

4.熟悉组合数据的常见应用。

二、主要内容和结果展示:

1. 使用两种方法将两个列表中的数据合并。
list1=[1,2,3]list2=[3,4,5,6]#方法一:list3=list1 + list2print(list3)#方法二:list1.extend(list2)print(list1)

2.列表 list 中包含10个1~100 之间的随机整数,将列表 list 中的奇数变成它的平方,偶数变成它的立方。编程实现上述功能。
list1=list(map(int,input("请输入1~10010个不同的整数:").split()))for i in range(0,10):if list1[i] % 2 == 0:list1[i] = list1[i] ** 3else:list1[i] = list1[i] ** 2print(list1)

3. 列表 ist =[3,8,11,26,47],从键盘输入一个新的元素,将该元素插入列表list中,保持列表list1 中的元素有序。编程实现上述功能。
list1 = [3, 8, 11, 26, 47]num = int(input("请输入一个新元素:"))list1.append(num)list1.sort()print(list1)

4.编写一个程序,删除列表中的重复元素。
list1 = [1, 2 , 9, 10, 2, 2, 9, 7]
list2 = []
for i in list1:if i not in list2:list2.append(i)
print(list2)

5. 元组tuple 中包含20个1~10之间的随机整数,统计每个整数在元组tuple 中出现的次数。
tuple1 = (1, 3, 6, 1, 9, 4, 4, 1, 7, 5, 6, 1, 1, 0, 2, 5, 4, 7, 9, 1)list2 = []for i in tuple1:if i not in list2:list2.append(i)list2.sort()tuple2 = tuple(list2)for j in tuple2:print("%d在元组中出现%d次"%(j,tuple1.count(j)))

6. 元组grade = (68, 87,83,91,93,79,68,86,66,78),按学号从小到大的顺序保存学生的成绩,

实现如下功能:

(1)输出 grade 中的第2个元素。

(2)输出 grade 中的第 3~7个元素。

(3)使用 in 查询grade 中是否包含成绩 87。

(4)调用 index()函数在grade 中查找给定成绩为 78的学生学号。

(5)调用 count() 函数查询成绩 68 在grade 中的出现次数。

(6)使用 len()函数获取 grade 中的元素个数。

grade = (68, 87, 82, 91, 93, 79, 68, 86, 66, 78)print("grade中的第2个元素:",grade[1])print("grade中的第3~7个元素:",grade[2:7])if 87 in grade:print("grade中包含成绩87!")else:print("grade中不包含成绩87!")print("成绩为78的学生学号:",grade.index(78) + 1)print("68在grade中出现的次数为",grade.count(68))print("grade中元素个数为",len(grade))

7. setl ={ 2,5,9,1,3},set2= {3,6,8,2,5},调用集合操作符或函数完成以下功能:

(1)向 set1 中添加一个新的元素7。

(2)求set1 和set2 的并集。

(3)求 setl 和set2 的交集。

(4)求 setl 和 set2 的差集。

(5)判断给定关键字key=4 是否在set1 或 set2中

set1 = {2, 5, 9, 1, 3}

set2 = {3, 6, 8, 2, 5}

set1.add(7)

print(set1)

set1.remove(7)

print(set1 | set2)

print(set1 & set2)

print(set1 - set2)

if 4 in (set1 | set2):

    print("关键字4在set1或set2中!")

else:

    print("关键字4不在set1或set2中!")

8.计算小明一天的生活费用,包括“早餐” 费用、“中餐” 费用、“晚餐”费用、“其他费用”等。给这些费用设定合理的值,并计算费用总和。

money = {"早餐":10, "中餐":25, "晚餐":25, "其他费用":10}

sum = 0

for n in money.values():

    sum += n

print("小明一天的费用总和为",sum)

9.将某班学生的《Python 程序设计》这门课程的成绩保存在字典中,学号为键(key),分数为值(value)。实现如下功能:

(1)向字典中添加学生成绩。

(2)修改字典中指定学生成绩。

(3)刪除指定学生成绩。

(4)杳询指定学生成绩。

(5)统计学生成绩,如最高分、最低分、平均分等。

score = {1:30, 2:99, 3:60, 4:88}print("学生的学号及对应成绩为:",score)score[5] = int(input("添加学生5的成绩为:"))print("学生的学号及对应成绩为:",score)n, student = map(int,input("指定学生学号及修改后成绩:").split())score[n] = studentprint("学生的学号及对应成绩为:",score)n = int(input("指定学生学号删除成绩:"))del score[n]print("学生的学号及对应成绩为:",score)n = int(input("指定学生学号查询成绩:"))print("学生成绩为:",score[n])print("学生的成绩的最高分、最低分、平均分
为:",max(score.values()),min(score.values()),sum(score.values())/4)

四、心得体会

通过这次实验,我对Python中的组合数据类型有了更深入的理解和应用。我学习了列表、元组、字典和集合这几种组合数据类型的创建和访问方法,同时也掌握了它们的一些常用操作,比如列表的合并、元组的计数、字典的键值操作和集合的集合运算等。

在实验过程中,我发现列表非常适合用于存储可以修改的数据序列,而元组则适合存储不需要修改的数据序列。字典是一个非常强大的数据结构,它提供了映射关系的存储方式,这对于需要键值对应的数据处理非常有用。集合则提供了一种存储无序唯一元素的方法,它的集合操作对于数学问题的求解或者数据去重非常有帮助。

此外,我学习了数据推导式的使用方法,这是一种非常简洁的数据生成方法,可以用更少的代码来完成复杂的数据处理。通过这种方法,我能够更有效率地编写代码,提高编程工作的效率。

在应用方面,我意识到组合数据类型在数据处理、存储和算法实现中的重要性。无论是在学术研究还是在工业实践中,这些数据结构都是不可或缺的工具。通过本次实验,我不仅提高了编程技能,而且提升了解决问题的能力。

总体来说,这次实验让我对Python语言中组合数据类型有了更加全面的了解,我相信这将对我的未来学习和工作产生积极的影响。

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

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

相关文章

Linux驱动学习—中断

1、中断基础概念 1.1 什么是中断 CPU在正常运行期间&#xff0c;由外部或者内部引起的时间&#xff0c;让CPU停下当前正在运行的程序&#xff0c;转而去执行触发他的中断所对应的程序&#xff0c;这就是中断。 响应中断的过程&#xff1a; <1>中断请求 <2>中断…

C#中使用正则表达式实现汉字转拼音

目录 一、正则表达式基础 二、实例 1.程序入口Form1.cs 2.类库PinYin.cs 三、生成效果 四、实例中的知识点 1.Regex 2.ToCharArray() 3.Regex.IsMatch 方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;重载 &#xff08;3&#xff09;IsMatch(Stri…

MySQL将多条数据合并成一条的完整示例

数据库中存的是多条数据&#xff0c;展示的时候需要合并成一条 数据表存储形式如下图 以type分组&#xff0c;type相同的算一条&#xff0c;且保留image和link的所有数据&#xff0c;用groupBy只保留一条数据 解决方案&#xff1a;用GROUP_CONCAT 完整语法如下 group_concat…

el-upload上传文件

需求&#xff1a;选中或拖拽文件后&#xff0c;使用http-request属性实现自动上传&#xff0c;并根据后端传回来的结果显示错误和控制fileList的显示&#xff0c;如果后端返回成功&#xff0c;则文件显示在文件列表处&#xff0c;如果后端返回失败&#xff0c;则文件列表不显示…

真核微生物基因组质量评估工具EukCC的安装和详细使用方法

介绍&#xff1a; GitHub - EBI-Metagenomics/EukCC: Tool to estimate genome quality of microbial eukaryotes 安装&#xff1a; docker&#xff1a; docker pull microbiomeinformatics/eukcc 推荐conda 环境&#xff1a; conda install -c conda-forge -c bioconda …

【LMM 014】NExT-GPT:能够输入和生成任意模态的多模态大模型

论文标题&#xff1a;NExT-GPT:Any-to-Any Multimodal Large Language Model 论文作者&#xff1a;Shengqiong Wu, Hao Fei*, Leigang Qu, Wei Ji, Tat-Seng Chua 作者单位&#xff1a; NExT Lab, National University of Singapore 论文原文&#xff1a;https://arxiv.org/abs…

【java爬虫】首页显示沪深300指数走势图以及前后端整合部署方法

添加首页 本文我们将在首页添加沪深300指数成立以来的整体走势数据展示&#xff0c;最后的效果是这样的 单独贴一张沪深300整体走势图 我感觉从总体上来看指数还是比较稳的&#xff0c;没有特别大的波动&#xff0c;当然&#xff0c;这只是相对而言哈哈。 首先是前端页面 &l…

ThinkPHP5多小区物业管理系统源码(支持多小区)

基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码&#xff0c;操作简单&#xff0c;功能完善&#xff0c;用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件&#xff1a;application/database.php 3.运…

综合跨平台全端ui自动化测试框架Airtest——AirtestIDE录制微信小程序脚本教学

前言 有在自动化测试领域的小伙伴应该都知道&#xff0c;app和小程序自动化这一类的自动化测试在实际操作中有时候很棘手让人心烦&#xff0c;动不动就是用appium写代码脚本维护什么的&#xff0c;不仅步骤繁琐&#xff0c;环境配置方面也是繁琐无比&#xff0c;动不动就与客户…

第121场双周赛题解:揭秘算法竞赛中的数位挑战与解题策略

需要多掌握解题套路 比赛地址 100157. 大于等于顺序前缀和的最小缺失整数 class Solution:def missingInteger(self, nums: List[int]) -> int:# Step 1: Find the longest consecutive prefixi 0 for i in range(1, len(nums)):if nums[i] ! nums[i - 1] 1:breakelse:…

条件竞争之文件上传

一、条件竞争介绍 条件竞争,在程序员日常的Web应用开发中&#xff0c;通常不如其他漏洞受到的关注度高。因为普遍的共识是&#xff0c;条件竞争是不可靠的&#xff0c;大多数时候只能靠代码审计来识别发现&#xff0c;而依赖现有的工具或技术很难在黑盒灰盒中识别并进行攻击。…

项目实战:数字孪生可视化大屏幕,实现生产过程实时监控

项目介绍 智慧工厂数据可视化系统&#xff0c;融合工业大数据、物联网、人工智能等各类信息技术&#xff0c;整合厂区现有信息系统的数据资源&#xff0c;实现数字孪生工厂、设备运维监测、智能管网监测、综合安防监测、便捷通行监测、能效管理监测、生产管理监测、仓储物流监…