组合数据(Python实现)

一、主要目的

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

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

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

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

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

1. 使用两种方法将两个列表中的数据合并。
list1=[1,2,3]

list2=[3,4,5,6]

#方法一:

list3=list1 + list2

print(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] ** 3

    else:

        list1[i] = list1[i] ** 2

print(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] = student

print("学生的学号及对应成绩为:",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语言中组合数据类型有了更加全面的了解,我相信这将对我的未来学习和工作产生积极的影响。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV中实现图像旋转的方法

OpenCV中实现图像旋转的方法 函数:cv2.flip() 功能:水平或者垂直翻转 格式:dst cv2.flip(src,flipCode[,dst]) 参数说明: src:输入图像 dst:和原图像具有相同大小、类型的目标图像。 flipCode&#…

Python小细节之Gui图形化界面库的对比和选择(一分钟版)

引言 我想要把打包的python程序变得好看 交互起来变得简单 遂 图形化界面 然 相关的库有很多 所以 对比! 开整 8个图形化界面库 在Python中,有多种图形用户界面(GUI)库可以用来创建丰富的图形化应用程序。以下是一些主要的图…

竞赛练一练 第23期:NOC大赛每日一练,python题目刷题第8天,包含答案解析

题目来自:NOC 大赛创客智慧编程赛项Python 复赛模拟题(二) NOC大赛创客智慧编程赛项Python 复赛模拟题(二) 第一题: 编写一个成绩评价系统,当输入语文、数学和英语三门课程成绩时,输出三门课程总成绩及其等级。 (1)程序提示用户输入三个数字,数字分别表示语文、数学、…

3.1 数据链路层概述

目录 3.1 数据链路层概述3.1.1 关于数据链路层什么是数据链路从协议栈看数据链路层数据链路层信道类型 3.1.2 三个基本问题封装成帧透明传输差错控制循环冗余检验CRC(Cyclic Redundancy Check)原理 3.1 数据链路层概述 3.1.1 关于数据链路层 什么是数据…

odoo17 | 模型视图继承

前言 Odoo的强大之处在于它的模块化。模块专门用于满足业务需求,但模块也可以彼此交互。这对于扩展现有模块的功能非常有用。例如,在我们的房地产场景中,我们希望在常规用户视图中直接显示销售人员的属性列表。 但是在讨论特定的Odoo模块继…

HackTheBox - Medium - Linux - UpDown

UpDown UpDown 是一台中等难度的 Linux 机器,暴露了 SSH 和 Apache 服务器。在Apache服务器上,有一个Web应用程序,允许用户检查网页是否已启动。服务器上标识了一个名为“.git”的目录,可以下载以显示目标上运行的“dev”子域的源…

GA算法简介

GA算法简介 前言一、GA是什么二、GA简介1.思想2.流程3.过程 前言 今天学习一下优化中非常出名的遗传(GA)算法 ,它的起源可是来自达尔文的生物进化论。 一、GA是什么 百科定义:遗传算法(Genetic Algorithm,GA)最早是…

Java多线程技术11——ThreadPoolExecutor类的使用1-备份

1 概述 ThreadPoolExecutor类可以非常方便的创建线程池对象,而不需要程序员设计大量的new实例化Thread相关的代码。 2 队列LinkedBlockingQueue的使用 public class Test1 {public static void main(String[] args) {LinkedBlockingQueue queue new LinkedBlocki…

四则运算 C语言xdoj20

问题描述: 输入两个整数和一个四则运算符,根据运算符计算并输出其运算结果(和、差、积、商、余之一)。注意做整除及求余运算时,除数不能为零。 输入说明: 使用scanf()函数输入两个整数和一个运算符&#xf…

【好书推荐】深入理解现代JavaScript

目录 推荐理由内容简介本书阅读对象为什么推荐这本书,看大佬们怎么说总结 T. J. Crowder是一位拥有30年经验的软件工程师。在他的整个职业生涯中,他至少有一半时间是在使用JavaScript从事开发工作。他经营着软件承包和产品公司Farsight Software。他经常…

工业协议转换网关:打破通信壁垒,实现设备互联

在工业自动化领域,各种设备和系统间的通信协议不尽相同,这给不同设备间的集成和数据交互带来了挑战。工业协议转换网关作为一种解决这一问题的关键设备,能够实现不同协议间的转换和数据传输,打破通信壁垒,提高设备的协…

2.8 EXERCISES

如果我们想使用每个线程来计算向量加法的一个输出元素,那么将线程/块索引映射到数据索引的表达式是什么? 答:C 假设我们想用每个线程来计算向量加法的两个(相邻)元素。将线程/块索引映射到i(由线程处理的…

SpringSecurity集成JWT实现后端认证授权保姆级教程-数据准备篇

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站…

进阶学习——Linux系统安全及应用

目录 一、系统安全加固 1.账号安全基本措施 1.1系统账号清理 1.1.1延伸 1.2密码安全控制 1.3命令历史限制 1.4终端自动注销 二、使用su命令切换用户 1.用途及用法 2.密码验证 3.限制使用su命令的用户 4.查看su操作记录 5.sudo(superuse do)…

Linux下QT生成的(.o)、(.a)、(.so)、(.so.1)、(.so.1.0)、(.so.1.0.0)之间的区别

记录一下遇到的问题:Linux系统下Qt编译第三方动态库会生成多个.so文件,不了解的小伙伴可能很疑惑: (1)Linux 下 QT 生成的(.o)、(.a)和(.so)三个文…

如何向嵌入式设备中添加tcpdump工具

说明:tcpdump是一个在网络设备调试中一个非常重要的工具,它并不像hexdump等工具集成在busybox里面,也不像其他的软件一样只需要依赖linux标准的库就可以实现,它需要pcap相关的库和加密的相关库。 本文主要是基于realtek 83系列的…

APPnium 自动化实践 :第一步adb 连接手机

1. 下载安装 adb ,添加到环境变量。 ADB Download - Get the latest version of ADB and fastboot 2. 手机开启开发者模式 https://developer.huawei.com/consumer/cn/doc/quickApp-Guides/quickapp-open-developer-option-0000001137005543 3. adb 连接设备 【And…

网络安全与IP地址:构建数字世界的前沿堡垒

网络安全是当今数字社会中不可忽视的挑战之一。而IP地址,作为互联网通信的基础协议,既是数字化时代的桥梁,也是网络安全的关键节点。本文将剖析IP地址在网络安全领域的作用,以及如何利用其特性建立有效的网络安全策略。 IP地址&a…

【图神经网络导论】之第9章模型变体(刘知远)

第9章不同图类型的模型变体 文章目录 第9章不同图类型的模型变体9.1 有向图9.2 异构图9.3 带有边信息的图9.4 动态图9.5 多维图 第4章介绍的基础GNN模型"被用于处理无向图,这些图包含具有标签的节点,是最简单的图。然而,在现实世界中还有…

了解一下InternLM3

在 InternStudio 平台中选择 A100(1/4) 的配置,如下图所示镜像选择 Cuda11.7-conda,接下来打开刚刚租用服务器的进入开发机,并且打开其中的终端开始环境配置、模型下载和运行 demo。入开发机后,在页面的左上角可以切换 JupyterLab…