Python 实验四 常用数据结构(1)

1.从键盘输入一个正整数列表,以一1结束,分别计算列表中奇数和偶数的和。

n = int(input("请输入一个正整数:"))
list = [] 
while n != -1:
    list.append(n)
    n = int(input("请输入一个正整数:"))
else:
    print("输入结束")
 
list1 = []
list2 = []
for i in list:
    if i % 2 != 0 :
        list1.append(i)
    else:
        list2.append(i)
        
print()
print("列表为:",list)
print("列表中的奇数的和为:",sum(list1))
print("列表中的偶数的和为:",sum(list2))

在这里插入图片描述
2.已知10个学生的成绩为68、75、32、99、78、45、88、72、83、78,请将成绩存放在列表中,请对其进行统计,输出优(100-90)、良(89-80)、中(79-60)、差(59-0)4个等级的人数。

grade = int(input("请输入学生成绩:"))
list = []
while grade > 0:
    list.append(grade)
    grade = int(input("请输入学生成绩:"))
else:
    print("成绩输入结束,现在开始统计和输出。")
    
print()
print("总成绩列表为:",list)
list1=[]
list2=[]
list3=[]
list4=[]
for i in list:
    if i>=90:
        list1.append(i)
    elif i>=80:
        list2.append(i)
    elif i>=60:
        list3.append(i)
    else:
        list4.append(i)
print("优:",len(list1),"良:",len(list2),"中:",len(list3),"差:",len(list4))

在这里插入图片描述

3.利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信息并能继续输入,然后计算该列表的和与平均值。

list=[]
i=0
while i<10:
    n = int(input("请输入奇数:"))
    if n % 2 != 0:
        list.append(n)
        i+=1
    else:print("输入错误,请重新输入。")
        
print()
print("列表为:",list)
print("列表的和为:",sum(list))
print("列表的平均值为:",sum(list)/len(list))

在这里插入图片描述
4.请用字典编程,已知某班学生的姓名和成绩如下:
在这里插入图片描述
输出这个班的学生姓名和成绩,并求出全班同学的人数和平均分并显示。

dict = {"张三":45,"李四":78,"徐来":40,"沙思思":96,"如一":65,"司音":90,"赵敏":78,"张旭宁":99,"柏龙":60,"思琪":87}
list = dict.values()
 
print("姓名 成绩")
for i in dict:
    print(i,dict[i])
    
print()
print("班级人数:",len(list))
print("班级平均分:",sum(list)/len(list))

在这里插入图片描述
5.某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额≥10万元,为铂金卡客户(platinum);如果消费总额≥5万元且<10万元,为金卡客户(gold);如果消费总额≥3万元且<5万元,为银卡客户(silver);如果消费总额<3万元,为普卡客户(ordinary)。现有一批顾客的消费金额(单位:万元)分别为2.3、4.5、24、17、1、7.8、39、21、0.5、1.2、4、1、0.3.将消费金额存储在列表list1中,输出一个字典,分别以platinum、gold、silver、ordinary为键,以各客户类型人数为值。

amount = float(input("请输入客户消费总额:"))
platinum = []
gold = []
silver = []
ordinary = []
while amount >= 0:
    if amount >= 10:
        platinum.append(amount)
    elif amount >= 5:
        gold.append(amount)
    elif amount >= 3:
        silver.append(amount)
    else:
        ordinary.append(amount)
    amount = float(input("请输入客户消费总额:"))
else:
    print("输入结束,统计数据。")
list1=platinum+gold+silver+ordinary
    
print()
print("list1:",list1)
dict = {"platinum":len(platinum),"gold":len(gold),"silver":len(silver),"ordinary":len(ordinary)}
print(dict)

在这里插入图片描述
【实验总结】
1、列表list
列表是Python中最基本的数据结构,是最常用的Python数据类型。列表将由若干数据作为元素的序列放置在一对方括号中,元素之间以逗号分隔。Python列表元素可以由任意类型的数据构成。同一列表中各元素的类型可以各不相同。列表中的元素允许重复。此外,Python列表是可以修改的,修改方式包括向列表添加元素、从列表删除元素以及对列表的某个元素进行修改。
(1)创建列表
列表的创建,即用一对方括号将以逗号分隔的若干数据(表达式的值)括起来。
(2)列表访问
列表访问,也就是对列表的索引操作的过程,并返回索引位置上的元素。列表中的每个元素被关联一个序号,即元素的位置,也称为索引。索引值是从0开始,第二个则是 1,以此类推,从左向右逐渐变大;列表也可以从后往前,索引值从-1开始,从右向左逐渐变小。该访问方式适用于所有序列类型的对象:列表、元组、字符串。
① 一维列表的访问
若一个列表有n个元素,则访问元素的合法索引范围是-n~n-1,当序号x为负时,表示从右边计数,其访问的元素实际为序号为n+x的元素。这个规律对所有序列类型均有效。
② 二维列表的访问
对二维列表中的元素进行访问,需要使用两对方括号来表示,第一个表示选择子列表,第二个在选中的子列表中再选择其元素。
(3)del命令
使用del命令可以从列表中删除元素,也可以删除整个列表。删除列表元素除了前面介绍的del命令以外,还有remove()、pop()、clear()方法。
(4)列表运算
①列表相加
通过列表相加的方法生成新列表。
②列表相乘
用数字n乘以一个列表,会生成一个新列表。在新列表中原来列表的元素将被重复n次。
(5)列表方法
①index(value[,start=0[,stop]])
index()方法用于从列表中找出与value值匹配的第一个元素索引位置。如果没有指定参数start的值,则从索引为0的位置开始查找,否则从索引为strat的位置开始查找。如果没有指定结束索引位置stop的值,可以查找到列表最后元素,否则在位于[start, stop)内的索引区间查找。如果找不到匹配项,就会引发异常。
实际上可以先使用in运算符测试某个元素是否在该列表中,避免用index()查找索引位置时由于找不到指定元素而导致的错误。
②count()
count()方法,用于统计某个元素在列表中出现的次数。
添加列表元素除了前面介绍的“+”、“+=”、“”、“=”运算符以外,还有append()、extend()、insert()方法。
③append()
append()方法,追加单个元素到列表的尾部,只接受一个元素,元素可以是任何数据类型,被追加的元素在列表中保持着原结构类型。
④extend()
extend()方法,在列表的末尾一次性追加另一个列表中的多个值,可以用新列表扩展原有的列表。
⑤insert()
insert()方法,将一个元素插入到列表中的指定位置。列表的insert方法有两个参数,第一个参数是索引点,即插入的位置,第二个参数是插入的元素。
⑥remove()
remove()方法,用于移除列表中与某值匹配的第一个元素。如果找不到匹配项,就会引发异常。
⑦pop()
pop()方法用于移除列表中的一个元素(默认为最后一个元素),并且返回该元素的值。pop()方法可以指定索引位置,当不在索引范围内或者从空列表中使用此方法均会触发异常。
⑧clear()
clear()方法用于删除列表中所有元素,但保留列表对象。请注意与del命令的区别,del命令删除整个列表时,列表对象不再保留。
⑨列表排序有reverse()、sort()方法
reverse()
reverse()方法,用于将列表中的元素位置反向存放。列表中可以有不同类型的元素,reverse()方法只是将位置反转。
sort()
sort()方法,用于将列表中的元素进行排序。默认按升序排列。使用reverse参数来指明列表是否降序排列,参数是简单的布尔值True或False,若其值等于True表示降序排序,默认为False。如果列表中包含的是字符串,按字母串排序规则排序。可以使用key参数。
(6)列表函数
①len()函数
len()函数,用于返回列表中所包含元素的个数。
②max()函数
max()函数,用于返回列表中元素的最大值。
列表中只能包含可相互比较的元素,如列表元素中既有数字又有字符串则会出错。
③min()函数
min()函数,用于返回列表中所包含元素的最小值。同样,如果列表中包含的是字符串,也按字符串的比较大小方法排序返回最小值,列表中只能包含可相互比较的元素。
③ reversed()函数
reversed()函数,将列表中的元素位置反向并返回可迭代的reversed对象。可以和list()函数联合起来使用得到列表。
④ sorted()函数
sorted()函数,对列表进行排序并返回新列表。
(7)列表遍历
可以通过for语句或者while语句循环遍历列表中所有元素。
2、元组tuple
元组由不同的元素组成,每个元素的数据类型可以各不相同,如字符串、数字和元组等。元组和列表十分相似,元组是用一对圆括号括起、用逗号分隔的多个元素的组合。元组也是序列的一种,可以利用序列操作对元组进行处理。
元组的操作和列表有很多的相似之处,但元组和列表之间也存在重要的不同,元组是不可更改的,是不可变对象。元组创建之后就不能修改、添加、删除成员。元组的上述特点使得其在处理数据时效率较高,而且可以防止出现误修改操作。
(1)元组创建
元组的创建,即用一对圆括号将以逗号分隔的若干元素(数据、表达式的值)括起来。
(2)元组访问
和列表一样,可以通过索引、切片来访问元组的成员。
(3)元组运算
①元组相加
通过元组相加的方法生成新元组。
②元组相乘
用数字n乘以一个元组,会生成一个新元组。在新元组中原来的元组元素将依次被重复n次。
③元组遍历
与列表类似,也可以通过for语句或者while语句实现循环遍历元组中的所有元素。
(4)列表与元组之间的转换
①列表转换成元组
Python中的tuple()函数可以接受一个列表,并返回一个包含同样元素的元组。从结果上看,tuple()函数冻结了列表。
②元组转换成列表
Python中的list()函数接受一个元组,并返回一个包含同样元素的列表。从结果上看, list()函数融化了元组。
3、字典
字典是Python中唯一内建的映射类型,用一对花括号“{”和“}”作为边界,元素之间以逗号分隔,每个元素是一对键(key)和值(value),键和值之间用英文冒号分隔。字典可通过数据key查找关联数据value。Python中字典的元素没有特殊的顺序,因此不能像序列那样通过位置索引来查找成员数据。但是每一个值都有一个对应的键。字典的用法是通过键key来访问相应的值value,字典的键是不重复的。
(1)创建字典
在字典中,键可以是任何不可修改类型的数据,如数值、字符串和元组等,列表是可变的,不能作为字典的键;而键对应的值可以是任何类型的数据。字典是无序集合,字典的显示次序由字典在内部的存储结构决定。
(2)字典操作
①字典中“键-值”对的数量
len()可以返回字典中项(键-值对)的数量。
②查找与特定键相关联的值
查找与特定键相关联的值,其返回值就是字典中与给定的键相关联的值。
③修改字典中的数据
在字典中,某个键相关联的值可以通过赋值语句来修改,如果指定的键不存在,则相当于向字典中添加新的键值对。
④删除字典条目
del命令可以用来删除字典条目或者整个字典。
⑤检查字典中是否含有某键的项
in命令可以查找某键值是否在字典中。如果存在返回“True”,否则返回“False”。
(3)字典方法
①keys()、values()
keys()方法将字典中的键以可迭代的dict_keys对象返回。values()方法将字典中的值以可迭代的dict_values对象形式返回。
②items()
items()方法将字典中的所有键和值以可迭代的dict_items对象形式返回,每对键值对组成元组作为一个元素。
③setdefault()
使用dict.setdefault(key, default=None)时,如果字典中包含参数key对应的键,则返回该键对应的值;否则以参数key的值为键,以参数default的值为该键对应的值,在字典中插入键-值对元素,并返回该元素的值部分。
④update()
update()方法将另一个字典中的所有键值对一次性地添加到当前字典中,如果两个字典中存在有相同的键,则以另一个字典中的值更新当前字典。
⑤clear()
clear()方法将字典中的所有条目删除,变成空字典。
⑥pop()
pop()方法能够弹出并删除字典中的键值对。
⑦popitem()
popitem()方法能够弹出字典的一个元素,如果字典为空则触发异常。
⑧get()
get()方法返回指定键所对应的值,如果键不存在则返回默认值。默认值为None,也可以自己指定。
(4)列表、元组与字典之间的转换
①列表与字典之间的转化
Python中的list()函数可以将字典转换列表,但列表不能转换为字典。
②元组与字典之间的转化
Python中的tuple()函数可以将字典转换元组,但元组不能转换为字典。

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

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

相关文章

Java-代码生成器的实现

文章目录 前言一、概述二、手写代码1. 简要说明2. 代码编写3. 完整代码4. 测试效果 三、项目源码 前言 最近看了一个开源的项目&#xff0c;jfinal-layui&#xff0c;然后这个项目里面有一个 代码生成器 的功能 之前虽然有用过代码生成器&#xff0c;但是从来没有看过相关的源…

Android音视频开发-OpenGL ES正交投影实现方法

本文实例为大家分享了OpenGL ES正交投影展示的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 绘制正方形 在最开始绘制的六边形里面好像看起来挺容易的&#xff0c;也没有出现什么问题&#xff0c;接下来不妨忘记前面绘制六边形的代码&#xff0c;让我们按照自己的…

浏览器页面操作——实时监控网页变化,读取网页内容

浏览器页面操作功能介绍 浏览器页面操作是集简云的一款免费内置应用&#xff0c;它可以定时监控网页变化&#xff0c;精准捕捉所需信息。一键设置指定网页与元素&#xff0c;全自动监测并即时推送通知&#xff0c;助您在第一时间了解网页最新情况&#xff0c;让您更高效便捷地…

( “树” 之 Trie) 208. 实现 Trie (前缀树) ——【Leetcode每日一题】

知识点回顾 &#xff1a; Trie&#xff0c;又称前缀树或字典树&#xff0c;用于判断字符串是否存在或者是否具有某种字符串前缀。 ❓208. 实现 Trie (前缀树) 难度&#xff1a;中等 Trie&#xff08;发音类似 “try”&#xff09;或者说 前缀树 是一种树形数据结构&#xff…

冲实习 or 全力准备秋招?

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「261」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2300 小伙伴加入&#xff01;去年认真准备和走下来的基…

聚焦能源 | 赛宁网安亮相2023年中国能源网络安全大会

​​4月21日&#xff0c;2023年中国能源网络安全大会&#xff08;以下简称“大会”&#xff09;在江苏南京成功落幕&#xff01;为贯彻国家网络强国战略&#xff0c;加强能源网络安全技术创新、成果应用、人才培养与技术交流&#xff0c;大会推出主旨论坛、案例交流、展览展示等…

sql优化慢查询

1.慢查询设置 慢查询设置&#xff08;临时&#xff09; -- 查看是否开启了慢查询日志 show variables like slow%;-- 开启慢查询日志 set global slow_query_log on;-- 更改日志路径 set global slow_query_log_file /data/mydata/app1-slow.log;-- 查看慢查询时间临界值&…

大厂齐出海:字节忙种草,网易爱社交

配图来自Canva可画 随着国内移动互联网红利逐渐触顶&#xff0c;互联网市场日趋饱和&#xff0c;国内各互联网企业之间的竞争便愈发激烈起来。在此背景下&#xff0c;广阔的海外市场就成为了腾讯、阿里、字节、京东、拼多多、百度、网易、快手、B站等互联网公司关注和争夺的重…

第四章(1):词向量定义与意义

第四章&#xff08;1&#xff09;&#xff1a;词向量定义与意义 目录 第四章&#xff08;1&#xff09;&#xff1a;词向量定义与意义前言1. 词的表示1.1 离散表示1.1.1 One-Hot独热编码1.1.2 ngram特征表示 1.2 分布式表示 2. 意义 前言 在自然语言处理的领域中&#xff0c;每…

成功上岸北大!总分418分,数学150分,经验贴+方法论

Datawhale干货 作者&#xff1a;葛云阳&#xff0c;杭州电子科技大学&#xff0c;Datawhale成员 前 言 大家好&#xff0c;我是北海。2023年以总分418分的成绩上岸北京大学信息工程学院计算机应用技术专业&#xff0c;其中初试第三&#xff0c;复试第五&#xff0c;总成绩第三…

zookeepr 简介

简介&#xff1a; zookeeper是为分布式应用提供协调服务的高性能组件。zookeeper通过简单的接口暴露了一些公共服务(命名、配置管理、同步和分组服务), 因此你不需要从头开始写这些服务。你可以现成得使用zookeeper来实现共识、组管理、领导者选举和存在协议。你可以根据自己的…

iptables和firewalld防火墙

安全技术和防火墙概述 安全技术 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全决…

Java核心技术 卷1-总结-16

Java核心技术 卷1-总结-16 线程属性线程优先级守护线程未捕获异常处理器 同步竞争条件的一个例子竞争条件详解锁对象 线程属性 线程的各种属性包括&#xff1a;线程优先级、守护线程、线程组以及处理未捕获异常的处理器。 线程优先级 在Java程序设计语言中&#xff0c;每一个…

OpenGL入门教程之 纹理

引言 我们已经了解到&#xff0c;我们可以为每个顶点添加颜色来增加图形的细节&#xff0c;从而创建出有趣的图像。但是&#xff0c;如果想让图形看起来更真实&#xff0c;我们就必须有足够多的顶点&#xff0c;从而指定足够多的颜色。这将会产生很多额外开销&#xff0c;因为每…

ChatGPT国内可用版-国内chatGPT哪个软件好用

国内chatGPT哪个软件最好用 国内对接ChatGPT软件&#xff0c;让智能的对话变得更加简单便捷&#xff01;ChatGPT是由OpenAI公司开发的最新一代自然语言处理技术&#xff0c;为聊天机器人赋予了更加真实、流畅、智能的语言表达能力。 我们是国内一家专注于人工智能和自然语言处…

旧版VS安装 Visual Studio 2019/2017/2015官方安装教程

安装VisualStudio找不到官方版本&#xff1f;只能找到第三方&#xff1f;害怕中毒&#xff1f; 不要急&#xff0c;本文例举了VS 2019 2017 2015的官方位置&#xff0c;不用但心装成第三方Visual Studio 百度搜索 Visual Studio 2017&#xff0c;只有第三方的包&#xff0c;而…

大孔树脂型号,A-722,ADS500,ADS600,ADS750,ADS800

一、产品介绍 基于吸附功能的聚苯乙烯特种树脂 Tulsimer ADS-600 是一款没有离子官能基的&#xff0c;由交联聚苯乙烯合成的功能强大的吸附型树脂。 Tulsimer ADS-600 主要应用于水溶液中吸附酚及其化合物&#xff0c;氯代烃等含氯物质&#xff0c;表面活性剂&#xff0…

Three——二、加强对三维空间的认识

Three——二、加强对三维空间的认识 接上个例子我们接着往下看 辅助观察坐标系 THREE.AxesHelper()的参数表示坐标系坐标轴线段尺寸大小&#xff0c;你可以根据需要改变尺寸。 使用方法&#xff1a; // AxesHelper&#xff1a;辅助观察的坐标系 const axesHelper new THRE…

java的社区养老服务系统 ssm空巢老人

创新点&#xff1a; 1、根据时间、类型统计用户下单记录&#xff0c;形成可视化图形&#xff08;饼状图&#xff09; 2、根据用户爱好推荐项目 包含模块&#xff1a;关于我们、联系我们、外链信息、资讯类型、服务资讯、服务类型、服务项目、案例类型、服务案例、讨论类型、讨论…

【数据库】— 2NF、3NF、BCNF、最小函数依赖集例题

判断范式级别 设有关系模式W(C,P,S,G,T,R)&#xff0c;其中各属性的含义是&#xff1a;C课程&#xff0c;P教师&#xff0c;S学生&#xff0c;G成绩&#xff0c;T时间&#xff0c;R教室&#xff0c;根据定义有如下数据依赖集 D{ C→P&#xff0c;(S,C)→G&#xff0c;(T,R)→C&…