Pyhon基础数据结构(列表)【蓝桥杯】

news2024/11/18 7:20:36

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 +=1
        if i >=85:
            youxiu +=1
        else:
            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))

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

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

相关文章

关于win11电脑连接wifi的同时,开启热点供其它设备连接

背景&#xff1a; 我想要捕获手机流量&#xff0c;需要让手机连接上电脑的热点。那么问题来了&#xff0c;我是笔记本电脑&#xff0c;只能连接wifi上网&#xff0c;此时我的笔记本电脑还能开启热点供手机连接吗&#xff1f;可以。 上述内容&#xff0c;涉及到3台设备&#x…

SAP SD学习笔记13 - 出库确认(发货)之后的取消 - VL09

上一章讲了出荷传票的总结&#xff0c;以及出荷相关的其他知识&#xff0c;比如出荷控制&#xff0c;出荷传票登录的各种Tr-cd&#xff0c;Picking场所的决定&#xff0c;出荷传票的变更等内容。 SAP SD学习笔记12 - 出荷传票总结&#xff0c;出荷控制(出荷Type&#xff0c;出…

IDEA优雅debug

目录 引言一、断点分类&#x1f384;1.1 行断点1.2 方法断点1.3 属性断点1.4 异常断点1.5 条件断点1.6 源断点1.7 多线程断点1.8 Stream断点 二、调试动作✨三、Debug高级技巧&#x1f389;3.1 watch3.2 设置变量3.3 异常抛出3.4 监控JVM堆大小3.5 数组过滤和筛选 引言 使用ID…

MyBatisPlus(Spring Boot版)的基本使用

1. 初始化项目 1.1. 配置application.yml spring:# 配置数据源信息datasource:# 配置数据源类型type: com.zaxxer.hikari.HikariDataSource# 配置连接数据库信息driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plus?characterEncodi…

串口DMA接收不定长数据

STM32F767—&#xff1e;串口通信接收不定长数据的处理方法_stm32串口超时中断-CSDN博客 STM32-HAL库串口DMA空闲中断的正确使用方式解析SBUS信号_stm32 hal usart2 dma-CSDN博客 #define USART1_RxBuffSize 100 extern DMA_HandleTypeDef hdma_usart1_rx; //此处声明的变量在…

【Linux】进程字段、环境变量与进程地址空间

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 丢掉幻想&#xff0c;准备斗争 目录 一、查看进程字段 1.字段说明 2.进程优先级 二、环境变量 1.概念 2.指令与PATH 3.环境变…

无人机场景 - 目标检测数据集 - 车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如无人机场景城市道路行驶车辆图片、无人机场景城市道边停车车辆图片、无人机场景停车场车辆图片、无人机场景小区车辆图片、无人机场景车辆遮挡、车…

【C++】vector 类模拟实现:探索动态数组的奥秘

&#x1f31f; 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。&#x1f31f; 如果你对string&#xff0c;vector还存在疑惑&#xff0c;欢迎阅读我之前的作品 &#xff1a; 之前文章&#x1f525;&#x1f52…

小程序-基于java+SpringBoot+Vue的驾校预约平台设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

初识算法 · 模拟(1)

目录 前言&#xff1a; 替换所有的问号 题目解析 算法原理 算法编写 提莫攻击 题目解析 算法原理 算法编写 外观数列 题目解析 算法原理 算法编写 前言&#xff1a; ​本文的主题是模拟&#xff0c;通过三道题目讲解&#xff0c;一道是提莫攻击&#xff0c;一道是…

使用 Vue 和 Create-Vue 构建工程化前端项目

目录 前言1. 工程化的意义与 Vue 的生态支持2. 搭建 Vue 工程化项目2.1 环境准备2.2 使用 create-vue 创建项目2.2.1 初始化项目2.2.2 安装依赖2.2.3 本地运行 3. Vue 项目的目录结构解析4. Vue 开发流程详解4.1 项目入口与根组件4.1.1 main.js 的作用4.1.2 App.vue 的结构 4.2…

Android中的AMS(Activity Manager Service)详解

Android中的AMS&#xff08;Activity Manager Service&#xff09;详解 AMS (Activity Manager Service) 是 Android 系统中非常核心的服务之一&#xff0c;它负责管理应用程序的生命周期、任务栈、进程、广播、服务等功能。AMS 是整个 Android Framework 的调度中心&#xff…

31.3 XOR压缩和相关的prometheus源码解读

本节重点介绍 : xor 压缩value原理xor压缩过程讲解xor压缩prometheus源码解读xor 压缩效果 xor 压缩value原理 原理:时序数据库相邻点变化不大&#xff0c;采用异或压缩float64的前缀和后缀0个数 xor压缩过程讲解 第一个值使用原始点存储计算和前面的值的xor 如果XOR值为0&…

UNIAPP发布小程序调用讯飞在线语音合成+实时播报

语音合成能够将文字转化为自然流畅的人声&#xff0c;提供100发音人供您选择&#xff0c;支持多语种、多方言和中英混合&#xff0c;可灵活配置音频参数。广泛应用于新闻阅读、出行导航、智能硬件和通知播报等场景。 在当下大模型火爆的今日&#xff0c;语音交互页离不开语音合…

【蓝牙协议栈】【BLE】【BAS】精讲蓝牙电池服务

1. 蓝牙电池服务(Bluetooth Battery Service)概念 蓝牙电池服务是蓝牙设备与其他设备通信时用于报告其剩余电池电量的标准服务。它让用户能够随时了解蓝牙设备(如无线耳机、智能手表、蓝牙鼠标/键盘等)的电池状态,从而方便地管理这些设备的续航与电源使用。 BAS通常用于在…

无线迷踪:陈欣的网络之旅

第一章 陈欣是一名资深的网络工程师&#xff0c;工作在一家领先的科技公司。她的生活平静而有序&#xff0c;直到有一天&#xff0c;公司的无线网络突然出现了严重的问题。员工们的设备频繁断开连接&#xff0c;无法正常使用。这个问题不仅影响了工作效率&#xff0c;还引起了…

【redis】—— 环境搭建教程

上一节&#xff0c;我们大致了解了Redis的几个重要版本&#xff0c;在本教程中&#xff0c;我们选择了5.0版本&#xff0c;因为5.0已经具备了大部分的功能特性&#xff0c;并且与7.0版本相比&#xff0c;其安装使用过程更为简便。 Redis的官方并不直接支持微软的Windows操作系统…

如何查看python源代码

众所周知&#xff0c;Python内建了许多函数模块&#xff0c;并且我们可能还会安装许多第三方模块等等。 下面以getpass为例查看其源代码。 1.help(getpass) 输入该命令找到file路径&#xff0c;并且可以查看其其提供的功能。 2.利用getpass.__file__查看位置 最后找到该文件…

java笔试练习题笔记(10)

关于继承和实现说法正确的 是 &#xff1f; ( )A.类可以实现多个接口&#xff0c;接口可以继承&#xff08;或扩展&#xff09;多个接口 B.类可以实现多个接口&#xff0c;接口不能继承&#xff08;或扩展&#xff09;多个接口 C.类和接口都可以实现多个接口 D.类和接口都不…

前端开发之打印功的使用和实例(vue-print-nb)

通过插件来进行实现 前言效果图1、安装插件vue2vue32、 引入Vue项目2、 使用2.1、在项目中创建按钮并且使用v-print绑定绑定打印事件2.2、编写要打印的内容,给内容附加唯一的id2.3、绑定的时间的方法和参数3、整体代码(此代码是通过vue3来进行实现的但是逻辑都是一样的)前言…