Pyhon基础数据结构(列表)【蓝桥杯】
a = [1,2,3,4,5] a.reverse() print("a = ",a) a.reverse() print("a = ",a)# 列表
列表(list)有由一系列按照特定顺序排序的元素组成

列表是有顺序的,访问任何元素需要通过“下标访问”
所谓“下标”就是指元素在列表从左往右为第几个,下标从0开始。
下标只能为【-n,n-1】,分为【0,n-1】(顺数第几个)、【-n,-1】(倒数第几个)
a = [‘apple’,‘banana’,‘cat’,‘dog’]
列表–访问列表
列表的每一个元素均可以像其他变量一样进行使用
赋值、加减乘除各种运算、打印等
a = [123,456,789]
print(a[0]+a[1])
print(a[2]//a[0])a[0] = 1
print("a = ",a)
a[1] = 5
print("a = ",a)
列表–添加元素
在末尾添加单个元素:
append(x) :列表a末尾添加元素x。
a = []
a.append(123)
a.append("Hello")
a.append(3.14)
print("a = ",a,a)a = [1,2,3,4,5]
a.append(6)
print("a = ",a)
a.expend(x):列表a末尾添加x;x为迭代对象,包括列表、元组、字符串等,不可为单个数字.
append是添加单个元素到末尾
expend是添加个多个元素到末尾
#append()
a = [0,1,2]
a.append([4,5,6])
print("a = ",a)
#extend()
a = [0,1,2]
a.extend([4,5,6])
print("a = ",a)
输出
a = [0, 1, 2, [4, 5, 6]]
a = [0, 1, 2, 4, 5, 6]
a.insert(idx,x):列表a在下标为idx插入元素x,原来下标大于等于idx的元素往右移动一个位置
a = ['apple','banana','cat','dog']
a.insert(0,'Apple')
a.insert(1,'Banana')
print("a = ",a)
输出
a = ['Apple', 'Banana', 'apple', 'banana', 'cat', 'dog']
列表–删除元素
del a[idx]:删除列表a中的下标为idx的元素
a = ['apple','banana','cat','dog']
del a[3]
print("a = ",a)
输出
a = ['apple', 'banana', 'cat']
pop(idx):删除列表a中为idx的元素,删除元素里的最后一个
#列表自带的删除
x = a.pop(1)
print("x = ",x)
print("a = ",a)
输出
x = banana
a = ['apple', 'cat', 'dog']
#利用pop删除元素
a = ['apple','banana','cat','dog']
del_str = a.pop(1)
print("a = ",a)
print("删除的元素为: ",del_str)#pop不加参数,默认删除最后一个元素
del_str = a.pop()
print("a = ",a)
输出
a = ['apple', 'cat', 'dog']
删除的元素为: banana
a = ['apple', 'cat']
a.remove(x):删除列表a中值为x的第一个元素
#remove利用删除元素
a = ['apple','banana','cat','dog']
del_str = 'apple'
a.remove(del_str)
print("a = ",a)
输出
a = ['banana', 'cat', 'dog']
如何判断列表a中存在x
a = ['apple','banana','cat','dog']
if 'apple' in a:print('不存在')
else:print('存在')
输出
不存在
a = ['apple','banana','cat','dog']
if 'apple' not in a:print('不存在')
else:print('存在')
输出
存在
如何删除列表所有的x
a = [1,2,3,3,3,3,4,5,5,1323,32,23,4]
x = 2
while x in a:a.remove(x)
print("a = ",a)
输出
a = [1, 3, 3, 3, 3, 4, 5, 5, 1323, 32, 23, 4]
列表–查找元素
查找元素x
如何隔统计apple删除
a = ['apple','banana','cat','apple']
x = 'apple'
c = a.count(x)
print("c = ",c)
for i in range(c):a.remove(x)
print("a = ",a)
输出
c = 2
a = ['banana', 'cat']
下标找元素
a = ['apple','banana','cat','dog','cat','apple']
print(a.count('apple'))
print(a.index('cat'))
print(a.index('cat',3))
输出
2
2
4
列表–翻转
a = [1,2,3,4,5]
a.reverse()
print("a = ",a)
a.reverse()
print("a = ",a)
输出
a = [5, 4, 3, 2, 1]
a = [1, 2, 3, 4, 5]
列表–求出列表长度
a = [1,2,3,4,5]
#输出长度为5
print(len(a))a.append(6)
a.append(7)
print(len(a))a.pop(4)
print(len(a))
print(a)
输出
5
7
6
[1, 2, 3, 4, 6, 7]
列表–小结

操作列表–遍历整个列表
利用for循环遍历列表
a = ['apple','banana','cat','apple']
x = 'apple'
c = a.count(x)
print("c = ",c)
for i in range(c):a.remove(x)
print("a = ",a)
输出
c = 2
a = ['banana', 'cat']
a = ['banana','apple','cat','dog','apple','banana']
ans = ''
for x in a:ans = ans +' '+ x
print(ans)
输出
banana apple cat dog apple banana
enumerate(a)
将列表a每个元素和对应的下标组合为一个带索引的序列,下标默认从0开始,遍历的时候同步遍历下标和值。
#enumerate(a) = [(0,'apple'),(1,'banana'),(2,'cat'),(3,'dog'),(4,'apple'),(5,'banana')] #隐藏起来了
a = ['apple','banana','cat','dog','apple','banana']
for idx,x in enumerate(a):print(idx,x)
输出
0 apple
1 banana
2 cat
3 dog
4 apple
5 banana
操作列表–创建数值列表
利用range函数+list

a = list(range(10))
print(a)b = list(range(0,10,3))
print(b)c = list(range(10,-1,-2))
print(c)
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 3, 6, 9]
[10, 8, 6, 4, 2, 0]
操作列表–列表操作符
+:连接两个列表
a*x:a = list,x是int,构成一个新列表,其内容为a复制x次
a = list(range(10))
print(a)b = list(range(0,10,3))
print(b)
c = a + b
print("c=",c)
d = a*3
c = list(range(10,-1,-2))
print(c)
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 3, 6, 9]
c= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 3, 6, 9]
[10, 8, 6, 4, 2, 0]
操作列表–内置函数
a = [1,2,3,4,5]
print("sum(a)=",sum(a))
print("max(a)=",max(a))
print("min(a)=",min(a))
输出
sum(a)= 15
max(a)= 5
min(a)= 1
***操作列表–列表解析式子
列表解析式:可以基于已有列表生成相关的新列表
[expression for menber in iterable]
对于迭代对象iterable的每个元素member,都执行expression构成新的列表
print(list(range(11)))
a = [x**2 for x in range(11)]
print(a)
输出
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
二
a = [1,2,3,4]
b = [3,4,5,6]
#c = a*b
c = [a[i]*b[i]for i in range(4)]
print(c)
输出
[3, 8, 15, 24]
暴力
a = [1,2,3,4]
b = [3,4,5,6]
c = []
for i in range(4):c.append(a[i]*b[i])
print(c)
输出
[3, 8, 15, 24]
三
输出
a = [x**2 for x in range(11)]
print(a)a = [x**2 for x in range(11) if x%2==0]
print(a)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[0, 4, 16, 36, 64, 100]
***操作列表–列表切片
切片:列表的部分元素组成的新列表
a[strat🔚step]
start:切片的下标起点(包含起点),默认为0
end:切片的下标终点(不包含终点),默认为列表长度
step:切片的步长,默认为1
range用法基本类似,只是range是数字序列,而切片面向的是任意list
a = ["apple","banana","cat","dog",'dog']
#切片[2,4],步长为1
b = a[2:4]#切片[0,n],步长为2
c = a[::2]
#前三个元素
d = a[:3]
#后三个元素
e = a[-3:]print('b = ',b)
print('c = ',c)
print('d = ',d)
print('e = ',e)
输出
b = ['cat', 'dog']
c = ['apple', 'cat', 'dog']
d = ['apple', 'banana', 'cat']
e = ['cat', 'dog', 'dog']
操作列表–小结

元组
元组:与列表类似,是有一系列按照额定顺讯排序的元素组成
用()创建,或者用tuple创建
与List区别
List是可修改的序列,而元组的不可修改的,即创建无法修改当前元组
a = ('apple','banana','cat','dog')
print(type(a),a)
b = ['dog','egg']
c = tuple(b)
print(type(c),c)
输出
<class 'tuple'> ('apple', 'banana', 'cat', 'dog')
<class 'tuple'> ('dog', 'egg')

习题


import os
import sys# 请在此输入您的代码
lis = [int(input()) for i in range(int(input()))]
jiege = 0
youxiu = 0
for i in lis:if i >= 60:jiege +=1if i >=85:youxiu +=1else:continue
print("{}%".format(round(jiege/len(lis)*100)))
print("{}%".format(round(youxiu/len(lis)*100)))
习题二


import os
import sys# 请在此输入您的代码
n = int(input())
m = []
for i in range(n):m.append(int(input()))
print(max(m))
print(min(m))
print("{:.2f}".format(sum(m)/n))
相关文章:
Pyhon基础数据结构(列表)【蓝桥杯】
a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表(list)有由一系列按照特定顺序排序的元素组成 列表是有顺序的,访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…...
Linux篇(权限管理命令)
目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户(超级管理员) 二、普通权限管理 1. ls查看文件权限 2. 文件…...
深入理解 Spark 中的 Shuffle
Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…...
leetcode-8-字符串转整数
题解: 代码:...
SQL注入注入方式(大纲)
SQL注入注入方式(大纲) 常规注入 通常没有任何过滤,直接把参数存放到SQL语句中。 宽字节注入 GBK 编码 两个字节表示一个字符ASCII 编码 一个字节表示一个字符MYSQL默认字节集是GBK等宽字节字符集 原理: 设置MySQL时错误配置…...
OpenCV基础(1)
1.图像读写与窗口显示 1.1.imread读取图像文件 Mat cv::imread(const string &filename,int flags IMREAD_COLOR); filename:要读取的图像文件名flags:读取模式,可以从枚举cv::ImreadModes中取值,默认取值是IMREAD_COLOR&am…...
【freertos】FreeRTOS信号量的介绍及使用
FreeRTOS信号量 一、概述二、PV原语三、函数接口1.创建一个计数信号量2.删除一个信号量3.信号量释放4.在中断释放信号量5.获取一个信号量,可以是二值信号量、计数信号量、互斥量。6.在中断获取一个信号量,可以是二值信号量、计数信号量7.创建一个二值信号…...
React Native 全栈开发实战班 - 图片加载与优化
在移动应用中,图片加载与优化 是提升用户体验和减少资源消耗的重要环节。图片加载不当可能导致应用卡顿、内存泄漏甚至崩溃。本章节将介绍 React Native 中常用的图片加载方法,包括 Image 组件的使用、第三方图片加载库(如 react-native-fast…...
Golang云原生项目:—实现ping操作
熟悉报文结构 ICMP校验和算法: 报文内容,相邻两个字节拼接到一起组成一个16bit数,将这些数累加求和若长度为奇数,则将剩余一个字节,也累加求和得出总和之后,将和值的高16位与低16位不断求和,直…...
mysql如何查看当前事务的事务id
-- 开启一个事务,但不执行写操作 START TRANSACTION; -- 查询 InnoDB 事务信息 SELECT * FROM information_schema.innodb_trx;在 MySQL 的 MVCC (多版本并发控制) 中,事务 ID (Transaction ID) 是由 InnoDB 存储引擎分配的,它的分配机制与事…...
在linux里如何利用vim对比两个文档不同的行数
在Linux中,可以使用vimdiff命令来对比两个文档中不同的行。首先确保你的系统中安装了vim编辑器。 打开终端,使用以下命令来启动vimdiff: vimdiff file1 file2 这里file1和file2是你想要对比的两个文件的路径。 vimdiff会以并排方式打开两…...
深入解析Python中的逻辑回归:从入门到精通
引言 在数据科学领域,逻辑回归(Logistic Regression)是一个非常重要的算法,它不仅用于二分类问题,还可以通过一些技巧扩展到多分类问题。逻辑回归因其简单、高效且易于解释的特点,在金融、医疗、广告等多个…...
【数据库】mysql数据库迁移前应如何备份数据?
MySQL 数据库的备份是确保数据安全的重要措施之一。在进行数据库迁移之前,备份现有数据可以防止数据丢失或损坏。以下是一套详细的 MySQL 数据库备份步骤,适用于大多数情况。请注意,具体的命令和工具可能因 MySQL 版本的不同而有所差异。整个…...
C语言——鸡兔同笼问题
没注释的源代码 #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int tou 10; i…...
数据结构王道P234第二题
#include<iostream> using namespace std; int visit[MAxsize]; int color[MaxSize];//1表示红,2表示白; bool dfs(Graph G, int i){visit[i]1;ArcNode *p;bool flag1;for(pG.vertices[i].firsrarc; p ; pp->next){int jp->adjvex;if(!visi…...
层归一化和批归一化
层归一化是针对某一样本的所有特征,批归一化是针对所有样本的某一特征。 计算公式:(当前值 - 均值)/ 标准差。 作用:缓解梯度消失和梯度爆炸的问题,并提高网络的泛化性能。 为什么Transform和BERT中使用层归…...
Spring Cloud Gateway 网关
微服务网关 Spring Cloud Gateway https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories Spring Cloud 在版本 2020.0.0 开始,去除了 Zuul 网关的使用,改用 Spring Cloud Gateway 作为网关…...
LabVIEW中的UDP与TCP比较
在LabVIEW中,UDP和TCP可以用于不同的网络通信场景,开发者可以根据需求选择合适的协议。以下是结合LabVIEW开发时的一些比较和应用场景: 1.TCP在LabVIEW中的应用: 可靠性高的场景:当开发一个对数据传输的准确性和完整…...
半导体器件与物理篇3 P-N结
热平衡时的PN结 pn结的定义:由p型半导体和n型半导体接触形成的结 pn结的特性和关键变量包括:整流性(即电流单向导通的特性)、平衡费米能级(费米能级 E F E_F EF为常数, d E F d x 0 )、内建电势 \frac…...
深入剖析String类的底层实现原理
嘿嘿,家人们,今天咱们来模拟实现string,好啦,废话不多讲,开干! 1:string.h 1.1:构造函数与拷贝构造函数 1.1.1:写法一 1.1.2:写法二(给缺省值) 1.2:赋值运算符重载与operatror[]获取元素 1.3:容量与迭代器 1.4:reserve与resize 1.5:清空与判断是否为空 1.6:push_back与…...
3步精通FanControl:从噪音难题到智能散热的技术蜕变
3步精通FanControl:从噪音难题到智能散热的技术蜕变 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...
7个高级配置技巧:打造极致Markdown预览体验
7个高级配置技巧:打造极致Markdown预览体验 【免费下载链接】vscode-markdown-preview-enhanced One of the "BEST" markdown preview extensions for Visual Studio Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-markdown-preview-enhanc…...
基于PSO算法的海陆空多栖无人机路径规划探索
PSO算法,空中机器人路径规划,无人机路径规划 海陆空多栖环境路径规划,考虑海洋和大气中的能源消耗不同,还原环境特性,粒子群PSO算法在如今科技飞速发展的时代,无人机的应用场景越发广泛,从简单的…...
基于PLC的智能饲喂系统设计:开启现代养殖自动化新篇章
基于PLC的智能饲喂系统设计 本设计包括设计报告,任务书,模拟工程仿真。本设计的制作智能饲喂是现代物流系统的重要组成部分,是代替人工饲喂的可行性计划,由自动控制与管理系统、配料系统、送料系统、自动统计系统、触摸屏监控系统…...
第一批“首席龙虾官”,月薪6万
鱼羊 发自 凹非寺量子位 | 公众号 QbitAI当你以为🦞还是大家伙业余养养的新鲜玩具,已经有公司正经在招「龙虾官」了。(doge)随便打开一个招聘网站一搜,你别说,你还真别说,「OpenClaw」标签下的在…...
asp毕业设计下载(全套源码+配套论文)——基于asp+access的公司门户网站设计与实现
基于aspaccess的公司门户网站设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的公司门户网站设计与实现,更多精选毕业设计项目实例见文末哦。 文章目录: 基于aspaccess的公司门户网站设计与实现&a…...
# 发散创新:基于群体智能的Python蚁群算法优化路径规划实战在人工智能快速演进的时代,**群体智能(Swarm Int
发散创新:基于群体智能的Python蚁群算法优化路径规划实战 在人工智能快速演进的时代,群体智能(Swarm Intelligence) 作为一类受自然界生物行为启发的计算范式,正逐渐成为解决复杂优化问题的重要工具。本文聚焦于蚁群算…...
道心网络安全学习笔记系列之好靶场的信息收集2
上节课找了一个图片的网址,继续挑战其它靶场,我们看下一题收集十个百度域名,这还不是顺手就来,但是贴吧不行,那还不简单,去访问百度网站,顺便输入一个搜索词,都不用看,前…...
VSCode远程连接报错?手把手教你修复settings.json文件(附常见错误排查)
VSCode远程连接报错终极排查指南:从settings.json修复到SSH配置优化 当你正准备通过VSCode远程连接服务器投入工作时,突然弹出的Failed to write remote.SSH.remotePlatform报错就像一盆冷水浇下来。更令人抓狂的是,明明命令行SSH连接一切正常…...
QT程序从Windows到ARM开发板:手把手教你解决交叉编译中的屏幕适配问题
QT程序从Windows到ARM开发板:手把手教你解决交叉编译中的屏幕适配问题 在嵌入式开发领域,QT框架因其跨平台特性和丰富的UI组件库而广受欢迎。然而,当我们将QT程序从熟悉的Windows环境迁移到ARM开发板时,往往会遇到各种意想不到的挑…...
