Python标准数据类型-List(列表)

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆
📃个人主页:hacker707的csdn博客
🔥系列专栏:零基础入门篇
💬个人格言:不断的翻越一座又一座的高山,那样的人生才是我想要的。这一马平川,一眼见底的活,我不想要,我的人生,我自己书写,余生很长,请多关照,我的人生,敬请期待💖💖💖

在这里插入图片描述

Python列表最强学习宝典

  • ✨序列概述
  • 序列的基本操作
    • 索引
    • 切片
  • ✨列表简介
    • 创建列表
    • 访问列表元素
    • 修改列表元素
    • 删除列表元素
    • 删除列表
  • ✨遍历列表的两种方法
    • 使用for循环遍历
    • 使用for循环和enumerate()函数遍历
  • ✨列表常用方法
    • 计算列表元素个数`len()`
    • 获取指定元素出现次数`count()`
    • 返回列表元素最大值`max()`
    • 返回列表元素最小值`min()`
    • 清空列表`clear()`
    • 复制列表`copy()`
    • 在列表末尾添加新的元素`append()`
    • 将一个列表中的多个元素添加到另一个列表`extend()`
    • 检索指定元素在列表中首次出现的索引位置`index()`
    • 计算数值列表中各元素的和`sum()`
    • 对列表进行排序`sort()`
    • 对所有可迭代对象进行排序`sorted()`
    • 删除列表中的一个元素`pop()`
    • 删除列表中某个值的第一个匹配项`remove()`
  • 结束语🥇

✨序列概述

  • 在Python中序列是最基本的数据结构
  • 序列是一块用于存放多个元素的内存空间
  • Python中内置了5个常用的序列结构,分别是列表、字符串、元组、字典、集合

序列的基本操作

索引

  • 序列中的每一个元素都有一个编号称为索引(indexing)

  • 索引从0开始递增(下标为0表示第一个元素、下标为1表示第二个元素以此类推)
    如下图所示
    在这里插入图片描述

  • 索引也可以是负数,从最后一个元素开始计数(下标为-1表示最后一个元素、下标为-2表示倒数第二个元素以此类推)
    如下图所示

在这里插入图片描述

切片

切片操作是访问序列中元素的另一种方法,可以访问一定范围内的元素
实现切片操作的语法格式:sname[start:end:step]
参数说明如下:
sname:序列的名称
start:切片的开始位置(不指定默认为0)
end:切片的结束位置(不指定默认为序列的长度)
step:切片的步长(如果省略默认为1,当忽略步长时,最后一个冒号也可以省略)

实例:创建一个名为demo的编程语言列表,输出指定的元素

demo = ["Python", "Java", "HTML", "CSS", "JavaScript", "Vue"]
print(demo[0:2])  # 获取第1个和第2个元素
print(demo[0:5:2])  # 获取第1、3、5个元素

运行结果如下

在这里插入图片描述

✨列表简介

创建列表

  • 使用赋值运算符创建列表
    同其他类型的Python变量一样,创建列表时,可以使用赋值运算符=直接将一个列表复制给变量
    创建列表语法格式:listname = [element 1,element 2,element 3,...,element n]
    参数说明如下:
    listname:列表名称
    element:列表中的元素

实例:使用=创建一个列表

demo = ["但行好事", "莫问前程"]

注意事项
在创建列表时我们可以将不同数据类型的数据放进同一个列表中,但是通常情况下,我们会在一个列表中只放入一种类型的数据,增加程序的可读性

  • 创建空列表
    在Python中,也可以创建空列表,然后再对列表进行一系列操作

实例:创建一个名为hacker的空列表

hacker = []
  • 使用list()创建列表
    在Python中可以使用list()去创建一个列表
    list()语法格式:list(data)
    参数说明如下:
    data:可以转换为列表的数据(可以是range对象、字符串、元组或其他可迭代类型的数据)

实例:创建一个0~10(不包括10)的所有偶数的列表

demo = list(range(0, 10, 2))
print(demo)

在这里插入图片描述

访问列表元素

在Python列表中,我们可以使用索引去访问列表中的元素

实例:创建一个名为demo的列表并访问指定索引的元素

demo = ["hello", "python", "world"]
print(demo[1])  # 索引从0开始以此类推

在这里插入图片描述

修改列表元素

修改列表元素只需要通过索引获取该元素,然后再重新赋值即可

实例:定义一个名为demo的列表修改索引值为1的元素

demo = ["hello", "python", "world"]
print("修改之前的列表:", demo)
demo[1] = "java"
print("修改之后的列表:", demo)

在这里插入图片描述

删除列表元素

删除元素由两种方法:

  • 根据索引删除
    删除列表中的指定元素和删除列表类似,可以使用del语句实现
    实例:创建一个名为demo的列表,删除索引为1的元素
demo = ["hello", "python", "world"]
del demo[1]
print(demo)

运行结果如下

在这里插入图片描述

  • 根据元素值删除

如果想要删除不确定其所在位置的元素可以根据元素值删除,使用列表对象的remove()方法实现

实例:定义一个名为demo的列表删除"python"元素

demo = ["hello", "java", "world"]
demo.remove("java")
print(demo)

在这里插入图片描述
注意事项

这里做了一个错误的示范如果在使用remove()方法进行删除元素时,如果指定的元素不存在会报以下的错误
ValueError: list.remove(x): x not in list:要删除的值不在列表中

在这里插入图片描述
当我们要用remove()方法删除元素的时候首先要判断元素是否存在,可以对以上的代码进行改进
说明:count()方法用于判断指定元素出现次数,如果为0该元素不存在

demo = ["hello", "java", "world"]
value = "python"
if demo.count(value) > 0:demo.remove(value)
else:print("该元素不存在此列表中")

在这里插入图片描述

删除列表

对于已经创建好的列表,不再使用使可以使用del语句将其删除
del语句语法格式:del listname
参数说明如下:
listname:要删除的列表名称

实例:定义一个名为demo的列表并将其删除

demo = ["但行好事", "莫问前程"]
del demo

注意事项
在删除列表前,一定要确定输入的列表名称是已经存在的,否则会报错
NameError: name 'demo' is not define:demo名称未定义

在这里插入图片描述

✨遍历列表的两种方法

使用for循环遍历

直接使用for循环遍历列表,输出元素的值
使用for循环遍历语法格式:for item in listname:
参数说明如下:
item:保存获取到的元素值
listname:要遍历的列表名称
实例:创建一个名为demo的列表,使用for循环遍历此列表输出元素的值

demo = ["hello", "python", "world"]
for item in demo:print(item)

在这里插入图片描述

使用for循环和enumerate()函数遍历

使用for循环和enumerate()函数遍历列表可以同时输出索引值和元素值
语法格式:for index,item in enumerate(listname):
参数说明如下:
index:保存元素索引
item:保存获取到的元素值
listname:要遍历的列表名称

实例:创建一个名为demo的列表,使用for循环和enumerate()函数遍历输出索引和对应的元素值

demo = ["hello", "python", "world"]
for index, item in enumerate(demo):print(index, ":", item)

运行结果如下

在这里插入图片描述

✨列表常用方法

计算列表元素个数len()

len()方法用于计算列表中元素个数
len()方法语法格式:len(list)
参数说明如下:
list:要计算元素个数的列表

实例:定义一个数字列表demo,计算元素个数

demo = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(len(demo))

在这里插入图片描述

获取指定元素出现次数count()

count()方法用于获取指定元素在列表中出现次数
count()方法语法格式:listname.count(obj)
参数说明如下:
listname:列表名称
obj:要指定获取次数的元素
返回值:元素在列表中出现次数

实例:创建一个数字列表,获取7出现的次数

demo = [1, 2, 4, 2, 7, 6, 3, 7, 7, 5, 9]
print(demo.count(7))

在这里插入图片描述

返回列表元素最大值max()

max()方法返回列表元素最大值
max()方法语法格式:max(list)
参数说明如下:
list:要返回最大值的列表

实例:返回demo和demo1中元素最大值

demo = ["python", "java", "javascript"]
demo1 = [400, 777, 100]
print("demo最大元素值:", max(demo), "\n" + "demo1最大元素值:", max(demo1))

在这里插入图片描述

返回列表元素最小值min()

min()方法返回列表元素最大值
min()方法语法格式:min(list)
参数说明如下:
list:要返回最小值的列表

实例:返回demo和demo1中元素最小值

demo = ["python", "java", "javascript"]
demo1 = [400, 777, 100]
print("demo最小元素值:", min(demo), "\n" + "demo1最小元素值:", min(demo1))

在这里插入图片描述

清空列表clear()

clear()方法用于清空列表,与del()方法类似,但是del()是将列表直接删除,clear()只是清空,打印出来是空列表

demo = ["hello", "python", "world"]
demo.clear()
print("列表清空后:", demo)

在这里插入图片描述

复制列表copy()

copy()方法用于复制列表
copy()方法语法格式:list.copy()

实例:复制一份demo列表名为为demo1

demo = ["hello", "python", "world"]
demo1 = demo.copy()
print("demo1列表:", demo1)

在这里插入图片描述

在列表末尾添加新的元素append()

append()方法用于在列表末尾追加元素
append()方法语法格式:listname.append(obj)
参数说明如下:
listname:要添加元素的列表名称
obj:要添加到列表末尾的元素

实例:创建一个名为demo的列表并在列表末尾追加一个元素

demo = ["hello"]
demo.append("world")
print(demo)

在这里插入图片描述

将一个列表中的多个元素添加到另一个列表extend()

extend()方法用于将一个列表多个元素添加到另一个列表,也可以理解为用新列表扩展原来的列表
extend()方法语法格式:list.extend(seq)
参数说明如下:
seq:元素列表,可以是列表、元组、集合、字典

实例:用demo1列表去扩展demo列表

demo = ["hacker707"]
demo1 = ["嘎嘎宠粉"]
demo.extend(demo1)
print("扩展后的列表:", demo)

在这里插入图片描述

检索指定元素在列表中首次出现的索引位置index()

index()方法用于检索指定元素在列表中首次出现的索引位置
index()方法语法格式:listname.index(obj)
参数说明如下:
listname:列表的名称
obj:要检索的对象
返回值:元素首次出现的索引值

实例:检索元素"a"首次出现的索引位置

demo = ["h", "a", "c", "k", "e", "r"]
print("a元素首次出现位置:", demo.index("a"))

在这里插入图片描述

计算数值列表中各元素的和sum()

sum()方法用于计算数值列表中各元素的和
sum()方法语法格式:sum(iterable[,start])
参数说明如下:
iterable:要计算的列表
start:可选参数,表示计算结果从哪个数开始(默认为0)

实例:定义保存10名学生数学成绩的列表并计算总成绩

score = [97, 90, 100, 77, 73, 96, 89, 77, 79, 92]
print("10名学生数学总成绩:", sum(score))

在这里插入图片描述

对列表进行排序sort()

sort()方法用于对原列表元素进行排序
sort()方法语法格式:list.sort( key=None, reverse=False)
参数说明如下:
key:用于指定排序规则(例如设置"key=str.lower"表示在排序时不区分字母大小写)
reverse:可选参数(设置为True降序,设置为False升序)

实例:对10名学生数学成绩进行升序,降序操作

score = [97, 90, 100, 77, 73, 96, 89, 77, 79, 92]
print("原列表", score)
score.sort()
print("升序:", score)
score.sort(reverse=True)
print("降序:", score)

在这里插入图片描述

对所有可迭代对象进行排序sorted()

sorted()方法语法格式:sorted(iterable, key=None, reverse=False)
参数说明如下:

  • iterable:可迭代对象,例如列表、元组、集合、字符串等。
  • key:排序时比较的函数,用于指定一个自定义函数来为每个元素生成一个键值,排序时会根据键值进行比较和排序。
  • reverse:排序规则, reverse=True 表示降序排序, reverse=False 表示升序排序(默认)

实例:将alist列表进行升序和降序排序

alist = [10, 8, 1, 4, 3, 6, 5, 7, 2, 9]
print("升序排序:", sorted(alist))
print("降序排序:", sorted(alist, reverse=True))

在这里插入图片描述
sorted()和sort()的区别

  • sorted()不会修改原始可迭代对象,而是返回一个新的排序列表
  • sort()对原始可迭代对象进行排序

删除列表中的一个元素pop()

pop()方法语法格式:list.pop(index)
参数说明如下:

  • index:可选参数,列表中要移除的元素的索引位置,默认为 -1,即移除列表中的最后一个元素。

实例:移除demo列表中索引为1的元素

demo = ["python", "java", "javascript", "mysql"]
print("移除的元素:", demo.pop(1))
print("移除后的列表", demo)

在这里插入图片描述

删除列表中某个值的第一个匹配项remove()

remove()方法语法格式:list.remove(element)
参数说明如下:

  • element:要移除的元素
demo = ["python", "java", "javascript", "mysql"]
print("原列表:", demo)
demo.remove("java")
print("移除后的列表:", demo)

在这里插入图片描述
✅如果要移除的元素出现多次,可以使用while循环多次调用remove()方法进行移除

demo = ["python", "java", "javascript", "mysql", "mysql", "mysql"]
print("原列表:", demo)
while "mysql" in demo:demo.remove("mysql")
print("移除后的列表:", demo)

在这里插入图片描述

结束语🥇

以上就是Python基础入门篇之Python标准数据类型-List(列表)

  • 欢迎大家订阅系列专栏:Python零基础入门篇🥇
  • 此专栏内容会持续更新直到完结为止(如有任何纰漏请在评论区留言或者私信)

感谢大家一直以来对hacker的支持
你们的支持就是博主无尽创作的动力💖💖💖

在这里插入图片描述

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

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

相关文章

备份StarRocks数据到对象存储minio中/外表查minio中的数据

1.部署minio环境 docker pull minio/minio宿主机与容器挂在映射 宿主机位置容器位置/data/minio/config/data/data/minio/data/root/.minio 拉起环境: docker run -p 9000:9000 -p 9090:9090 --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYadm…

基于Dubbo实现服务的远程调用

目录 前言 RPC思想 为什么使用Dubbo Dubbo技术框架 ​编辑 调用关系流程 基础实现 A.提供统一业务Api B.编辑服务提供者Product B.a 添加依赖 B.b 添加Dubbo 配置(基于yaml配置文件) B.c 编写并暴露服务 C.编辑服务消费者 C.a 添加依赖 C.b 添加Dubbo配置 C.c 引用…

使用正则表达式总结

多行匹配 使用Pattern.DOTALL | Pattern.MULTILINE参数 Pattern.CASE_INSENSITIVE:不区分大小写 public static void main(String[] args) {String teststr "AA aa AASSF \n\r */ DDET AA";String regStr "(?AA)\\w\\b";extracted(testst…

网络威胁防御+资产测绘系统-Golang开发

NIPS-Plus 网络威胁防御资产测绘系统-Golang开发 项目地址:https://github.com/jumppppp/NIPS-Plus NIPS-Plus 是一款使用golang语言开发的网络威胁防御系统(内置资产测绘系统) 网络威胁流量视图网络威胁详细信息浏览列表网络威胁反制探测攻…

C++ std::pair and std::list \ std::array

std::pair<第一个数据类型, 第二个数据类型> 变量名 例如&#xff1a; std::pair<int, string> myPair; myPair.first;拿到第一个int变量 myPair.second拿到第二个string变量 std::pair需要引入库#include "utility" std::make_pair() 功能制作一个…

数控程序传输DNC服务、数控刀补服务(发那科fanuc、西门子、三菱、广数、新代、华中、宝元、马扎克、大畏Okuma)等数据采集服务

行业现状&#xff1a; 最近听到很多做MES、ERP这一行的叫苦&#xff0c; 客户对项目的要求越来越严格&#xff0c;做到数字化工厂都伴随着ERP、MES的项目要求必须一起做下去 然而很对MES、ERP对设备协议不懂&#xff0c;买了协议自己还要开发&#xff0c;考虑线程的问题、断…

syn洪流原理

TCP三次握手 建立连接发送或回应第一次握手客户端发送报文&#xff0c;标志位为SYN&#xff08;seqa&#xff09;第二次握手服务器发送报文&#xff0c;标志位为SYN&#xff0c;ACK&#xff08;seqb,acka1&#xff09;第三次握手客户端回应服务器报文&#xff0c;标志位为ACK&…

Unity 之 Invoke 与InvokeRepeting 函数控制定时调用

文章目录 InvokeInvokeRepeating Invoke 在Unity游戏开发中&#xff0c;Invoke是一种用于延迟调用方法的方法。它允许你在一定的时间之后执行特定的函数或方法&#xff0c;通常用于执行定时任务&#xff0c;例如在一段时间后触发一个事件或在一定间隔内重复执行某个方法。Invo…

图的应用(最小生成树,最短路径,有向无环图)

目录 一.最小生成树 1.生成树 2.无向图的生成树 3.最小生成树算法 二.最短路径 1.单源最短路径---Dijkstra&#xff08;迪杰斯特拉&#xff09;算法 2.所有顶点间的最短路径---Floyd&#xff08;弗洛伊德&#xff09;算法 三.有向无环图的应用 1.AOV网&#xff08;拓扑…

Opencv手工选择图片区域去水印

QT 插件化图像算法研究平台的功能在持续完善&#xff0c;补充了一个人工选择图片区域的功能。 其中&#xff0c;图片选择功能主要代码如下&#xff1a; QRect GLImageWidget::getSeleted() {QRect ajust(0,0,0,0);if(image.isNull() || !hasSelection)return ajust;double w1…

智能小车之测速小车原理和开发

目录 1. 测速模块介绍 2. 测试原理和单位换算 3. 定时器和中断实现测速开发和调试代码 4. 小车速度显示在OLED屏 1. 测速模块介绍 用途&#xff1a;广泛用于电机转速检测&#xff0c;脉冲计数,位置限位等。有遮挡&#xff0c;输出高电平&#xff1b;无遮挡&#xff0c;输出…

算法通过村第六关-树青铜笔记|中序后序

文章目录 前言1. 树的常见概念2. 树的性质3. 树的定义与存储方式4. 树的遍历方式5. 通过序列构建二叉树5.1 前中序列恢复二叉树5.2 中后序列恢复二叉树 总结 前言 提示&#xff1a;瑞秋是个小甜心&#xff0c;她只喜欢被爱&#xff0c;不懂的去爱人。 --几米《你们 我们 他们》…

基础算法--理解递归

理解递归 递归的两个特点 调用自身结束条件 举个从小就听过的例子&#xff1a; 1. 从前有座山&#xff0c;山中有座庙&#xff0c;庙里有个老和尚&#xff0c;老和尚在给小和尚讲故事&#xff1a;2. 从前有座山&#xff0c;山中有座庙&#xff0c;庙里有个老和尚&#xff0c;…

JAVA实现SAP接口

JAVA实现SAP接口 环境spring-bootmaven 1.maven依赖 <dependency><groupId>com.github.virtualcry</groupId><artifactId>sapjco-spring-boot-starter</artifactId><version>3.1.4</version></dependency>2.配置文件 applic…

假期摆烂之学习javaweb

Mybatis: 概念&#xff1a; 是一款优秀的持久层框架&#xff0c;用于简化 JDBC的开发&#xff1a;持久层也就是三层架构里面的dao层&#xff0c;JDBC是规范&#xff1b;框架就是一个半成品的软件&#xff0c;是一套可重复用&#xff0c;通用的&#xff0c;软件基础代码模型&a…

文章预览 安防监控/视频存储/视频汇聚平台EasyCVR播放优化小tips

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码H.264、平台级联等。为了便于用户二次开发、调用与集成&#xff0c;…

Vue3入门

Vu3 更多的优势 更容易维护(组合式API;更好的支持TypeScript支持)更快的速度(重写diff算法;模板编译优化;更高效的组件初始化)更小的体积(良好的TreeShaking;按需引入)更优的数据响应式(Proxy主要是为了处理动态添加的对象属性不是响应式的问题)vue3官方文档:简介…

sql:SQL优化知识点记录(十五)

&#xff08;1&#xff09;MySQL主从复制 我们这里配置一Windows上的MySql做主机&#xff0c;Linux上的MySql做从机&#xff0c;搭建一主一从 测试以下是否能够拼通&#xff1a;从Linux上&#xff1a;167&#xff0c;连接Windows的165 从Windows的165 连接Linux上&#xff1a;…

2023--9-8 高斯消元解线性方程组

题目链接&#xff1a;高斯消元解线性方程组 #include <iostream> #include <algorithm> #include <cmath>using namespace std;const int N 110; const double eps 1e-8;int n; double a[N][N];int gauss() {int c, r;for(c 0, r 0; c < n; c){// 找到…

基于Java+SpringBoot+Vue前后端分离火锅店管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…