【Python】07、列表

news/2025/3/15 14:12:44/

文章目录

    • 1.列表的简介
    • 2.切片
    • 3.通用操作
      • 3.1 + 和 * 操作
      • 3.2 in 、not in 操作
      • 3.3 len()
      • 3.4 min()、max()
      • 3.4 index()、count()方法
    • 4.序列
    • 5.修改列表(可变序列)
      • 5.1. 通过索引修改
      • 5.2. 通过切片修改
    • 6.列表的方法
      • 6.1 append()
      • 6.2 insert()
      • 6.3 extend()
      • 6.4 clear()
      • 6.5 pop()
      • 6.6 remove()
      • 6.7 reverse()
      • 6.8 sort()
    • 7.遍历列表
    • 8.range

1.列表的简介

列表(list)是Python中的一个对象,列表中可以保存多个有序的数据。列表中存储的数据称为元素,一个列表可以存储多个元素。列表中可以存储任意的对象,但一般情况下一个列表只存一种类型的数据

  1. 列表的创建

列表的创建,通过 [ ] 来创建列表


列表中的元素会按照插入的顺序存储到列表中,第一个插入的数据就在第一位

python">my_list = [] # 创建了一个空列表
my_list = [10] # 创建了一个只有一个元素10的列表
my_list = [10,20,30,40] # 创建了多个元素的列表
my_list = [10,'Hello',True,None,[1,2,3],print] # 创建了多种元素的列表,不过一般不这样
  1. 列表数据操作

获取数据可以通过索引来获取,索引是元素在列表中的位置,列表中的每一个元素都有索引,索引是从0开始计数


注意: Python中的索引可以是 负数,如果索引是负数表示从后往前获取数据,例如:my_list[-1]表示获取倒数第一个元素


语法:my_list[0] #获取索引为0的元素


如果使用的索引超出了最大范围,程序会抛出异常


获取列表长度:len()

2.切片

切片指的是从现有列表中,获取一个子列表。
切片语法:列表[起始:结束:步长],表示从列表中指定的起始位置到结束为止之间的元素

  • 步长表示每次获取元素的间隔,默认值是1,步长不能为0,但可以是负数,步长负数表示从列表的后面向前面取元素
  • 如果省略起始位置,默认从第一个元素开始
  • 如果省略结束位置,默认截取到最后一个元素
  • 如果起始和结束位置都省略,相当于复制了整个列表
  • 注意: 切片获取时会包括起始位置的元素,但是不会包括结束位置的元素
  • 切片操作时会返回一个新的列表,不会影响原来的列表
python"># 创建列表
stus = ['张三','李四','王五','赵六']# 通过切片获取指定元素
stus[0,2]# 在stus列表中从位置索引值为0,1的元素

3.通用操作

3.1 + 和 * 操作

  • + 表示列表的拼接
python"># 列表 + 操作
list = [1,2,3] + [7,8,9]
print(list)# 结果
[1, 2, 3, 7, 8, 9]***Repl Closed***
  • * 表示将列表重复指定的次数
python"># 列表 * 操作
list = [1,2,3]  * 3
print(list)# 结果
[1, 2, 3, 1, 2, 3, 1, 2, 3]***Repl Closed***

3.2 in 、not in 操作

  • in 用来检查指定元素是否存在于列表中,如果存在返回True
python"># 创建列表
stus = ['张三','李四','王五','赵六','沈七','刘八']print('张三' in stus)# 结果
True***Repl Closed***
  • not in 用来检查指定元素是否不在于列表中,如果不在返回True
python"># 创建列表
stus = ['张三','李四','王五','赵六','沈七','刘八']print('哈哈' not in stus)# 结果
True***Repl Closed***

3.3 len()

  • len() 获取列表中元素的个数
python"># 创建列表
stus = ['张三','李四','王五','赵六','沈七','刘八']print(len(stus))# 结果
6***Repl Closed***

3.4 min()、max()

  • min() 获取列表中最小的元素
  • max() 获取列表中最大的元素
python">list = [1,2,5,7,9,6,45]print('最小元素:',min(list))
print('最大元素:',max(list))# 结果
最小元素: 1
最大元素: 45***Repl Closed***

3.4 index()、count()方法

  • index() 获取指定元素在列表中第一次出现的位置索引,如果元素不在列表中会报错
  • 语法结构:index(x,[i,j])
  • x 表示要查找的元素,i 表示查找的起始位置,j 表示查找的结束位置,同样是包含 i 但是不包含 j 。
  • 如果i和j不设置,默认查找第一次出现的位置索引
python">list = ['张三','李四','王五','赵六','沈七','刘八']index = list.index('赵六')
print('赵六的索引为:',index)# 结果
赵六的索引为: 3***Repl Closed***
  • count() 统计指定元素在列表中的出现次数
python">list = ['张三','李四','王五','赵六','张三','沈七','刘八']count = list.count('张三')
print('张三出现的次数为:',count)# 结果
张三出现的次数为: 2***Repl Closed***

4.序列

序列(sequence)是Python中最基本的一种数据结构。数据结构指的计算机中数据存储的方式。

序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引),并且序列中的数据会按照添加的顺序来分配索引。

  • 可变序列。可变序列指的是序列中的元素可以盖板,常见的有列表(list)
  • 不可变序列。不可变序列指的是序列中的元素不能改变,常用的有字符串(str),元组(tuple)

5.修改列表(可变序列)

5.1. 通过索引修改

  1. 直接通过索引修改元素
python"># 创建列表
list = ['张三','李四','王五','赵六','张三','沈七','刘八']# 修改
list[0] = '哈哈'print('list列表第一个元素是:',list[0])# 结果
list列表第一个元素是: 哈哈***Repl Closed***
  1. 通过del删除元素
python">list = ['张三','李四','王五','赵六','张三','沈七','刘八']print('删除前,list列表是:',list)
# 删除
del list[0]print('删除后,list列表是:',list)# 结果
删除前,list列表是: ['张三', '李四', '王五', '赵六', '张三', '沈七', '刘八']
删除后,list列表是: ['李四', '王五', '赵六', '张三', '沈七', '刘八']***Repl Closed***

5.2. 通过切片修改

  1. 通过切片修改列表时,再给切片进行赋值时,只能使用序列。
python">list = ['张三','李四','王五','赵六','张三','沈七','刘八']print('切片前,list列表是:',list)
list[0:3] = 'ASDF'
# 注意
# list[0:0]=['沈万三'] 表示向索引为0的位置插入'沈万三'这个元素print('切片后,list列表是:',list)# 结果
切片前,list列表是: ['张三', '李四', '王五', '赵六', '张三', '沈七', '刘八']
切片后,list列表是: ['A', 'S', 'D', 'F', '赵六', '张三', '沈七', '刘八']***Repl Closed***
python"># list[::2] 当设置步长时,序列中的元素个数必须和切片中的元素个数一致,否则会报错list = ['张三','李四','王五','赵六','张三','沈七','刘八']
print('切片前,list列表是:',list)
list[::2] = 'ASDF'
print('切片后,list列表是:',list)# 结果
切片前,list列表是: ['张三', '李四', '王五', '赵六', '张三', '沈七', '刘八']
切片后,list列表是: ['A', '李四', 'S', '赵六', 'D', '沈七', 'F']***Repl Closed***
  1. 通过del删除
python">list = ['张三','李四','王五','赵六','张三','沈七','刘八']print('切片前,list列表是:',list)
del list[0:2] # 或者list[0:2] = []
print('切片后,list列表是:',list)# 结果
切片前,list列表是: ['张三', '李四', '王五', '赵六', '张三', '沈七', '刘八']
切片后,list列表是: ['王五', '赵六', '张三', '沈七', '刘八']***Repl Closed***

6.列表的方法

6.1 append()

  • s.append() 向列表的最后添加一个元素
python">list = ['张三','李四','王五','赵六','沈七','刘八']print('原列表:',list)
list.append('哈哈')
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八']
新列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八', '哈哈']***Repl Closed***

6.2 insert()

  • s.insert(i,x) 向列表指定位置 i 插入一个x元素
python">list = ['张三','李四','王五','赵六','沈七','刘八']print('原列表:',list)
list.insert(1,'哈哈')
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八']
新列表: ['张三', '哈哈', '李四', '王五', '赵六', '沈七', '刘八']***Repl Closed***

6.3 extend()

  • s.extend(s) 需要一个序列 s 作为参数,会将该序列中的元素添加到当前列表中,相当于 += 操作
python">list = ['张三','李四','王五','赵六','沈七','刘八']print('原列表:',list)
list.extend('Hello World')
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八']
新列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八', 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']***Repl Closed***

6.4 clear()

  • s.clear() 清空序列
python">list = ['张三','李四','王五','赵六','沈七','刘八']print('原列表:',list)
list.clear()
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八']
新列表: []***Repl Closed***

6.5 pop()

  • s.pop(i) 根据索引删除并返回指定元素,如果 i 不赋值,则删除的是最后一个
python">list = ['张三','李四','王五','赵六','沈七','刘八']print('原列表:',list)
ret = list.pop(1)
print('新列表:',list)
print('pop:返回元素:',ret)# 结果:
原列表: ['张三', '李四', '王五', '赵六', '沈七', '刘八']
新列表: ['张三', '王五', '赵六', '沈七', '刘八']
pop:返回元素: 李四***Repl Closed***

6.6 remove()

  • s.remove(x) 删除指定值的元素,如果有多个相同的指定元素,只删除第一个
python">list = ['张三','李四','王五','李四','赵六','沈七','刘八']print('原列表:',list)
list.remove('李四')
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '李四', '赵六', '沈七', '刘八']
新列表: ['张三', '王五', '李四', '赵六', '沈七', '刘八']***Repl Closed***

6.7 reverse()

  • s.reverse() 将列表顺序反转
python">list = ['张三','李四','王五','李四','赵六','沈七','刘八']print('原列表:',list)
list.reverse()
print('新列表:',list)# 结果
原列表: ['张三', '李四', '王五', '李四', '赵六', '沈七', '刘八']
新列表: ['刘八', '沈七', '赵六', '李四', '王五', '李四', '张三']***Repl Closed***

6.8 sort()

  • s.sort() 将列表中元素进行排序,默认升序
  • s.sort(reverse=True) 将列表中元素进行降序排序
python">list = [1,-5,2,6,95,-4,5,1,21]print('原列表:',list)list.sort()
print('新列表升序:',list)list.sort(reverse = True)
print('新列表降序:',list)# 结果
原列表: [1, -5, 2, 6, 95, -4, 5, 1, 21]
新列表升序: [-5, -4, 1, 1, 2, 5, 6, 21, 95]
新列表降序: [95, 21, 6, 5, 2, 1, 1, -4, -5]***Repl Closed***

7.遍历列表

遍历列表指的就是将列表中的所有元素取出来

  • 通过while循环处理(不常用)
python">list = ['张三','李四','王五','赵六','沈七','刘八']i= 0while i < len(list) : print(list[i])i += 1# 结果:
张三
李四
王五
赵六
沈七
刘八***Repl Closed***
  • 通过for循环遍历
    for循环的代码块会执行多次,序列中有几个元素就会执行几次,每执行一次就会将序列中的一个元素赋值给变量,所以可以通过变量获取元素
python"># for循环语法:
for 变量 in 序列 : 代码块list = ['张三','李四','王五','赵六','沈七','刘八']for s in list : print(s)# 结果:
张三
李四
王五
赵六
沈七
刘八***Repl Closed***

8.range

range(i,j,k) 是一个函数,可以用来生成一个自然数的序列。这个函数需要三个参数分别表示

  • 起始位置(可省略,默认0)、
  • 结束位置、
  • 步长(可省略,默认1,可以为负数)

通过range可以创建一个执行指定次数的for循环

python">a = range(5)
b = range(0,5)
c = range(0,5,2)
d = range(0,5,-1)
e = range(5,0,-1)print('a:',list(a))
print('b:',list(b))
print('c:',list(c))
print('d:',list(d))
print('e:',list(e))# 结果:
a: [0, 1, 2, 3, 4]
b: [0, 1, 2, 3, 4]
c: [0, 2, 4]
d: []
e: [5, 4, 3, 2, 1]***Repl Closed***
python"># 执行次数为5次 for循环
for i in range(5) : print(i)
文章来源:https://blog.csdn.net/Tiger_shl/article/details/146218286
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/1579326.html

相关文章

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…

69.Harmonyos NEXT图片预览组件应用实践(二):电商、内容与办公场景

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; Harmonyos NEXT图片预览组件应用实践&#xff08;二&#xff09;&#xff1a;电商、内容与办公场景 文章目录 Harmonyos NEXT图片预览组件应用实践…

根据Excel快速生成表的创建以及新增数据记录的sql

目录 前言一、下载Excel二、使用步骤(以自增版为例)1.生成建表sql1.1.在"table结构表"创建表结构1.2.确认区域1.3.获取建表sql 2.生成新增数据记录sql2.1.维护新增的数据2.2.处理新增的数据2.3.获取sql语句 总结 前言 在Excel软件中&#xff0c;根据维护的表结构与数…

HTTP 协议中常见的错误状态码(详细介绍)

以下是 HTTP 协议中常见的错误状态码及其原因的总结&#xff0c;按错误类型分类整理&#xff1a; 4xx 客户端错误 400 Bad Request 原因&#xff1a;请求格式错误&#xff0c;服务器无法解析。常见场景&#xff1a; 请求头或请求体语法错误&#xff08;如 JSON/XML 格式错误…

Linux 部署 Spring Boot 项目, Web项目(2025版)

Linux 部署 Spring Boot 项目&#xff0c;Web项目&#xff08;2025版&#xff09; 一、简洁版1.1 Linux 环境配置1.2 将Spring Boot 项目部署到 Linux 中 二、详细版2.1 Linux 环境配置2.2 Spring Boot 项目搭建2.3 mysql 配置2.4 测试项目2.5 将Spring Boot 项目部署到 Linux …

Maven | 站在初学者的角度配置

目录 Maven 是什么 概述 常见错误 创建错误代码示例 正确代码示例 Maven 的下载 Maven 依赖源 Maven 环境 环境变量 CMD测试 Maven 文件配置 本地仓库 远程仓库 Maven 工程创建 IDEA配置Maven IDEA Maven插件 Maven 是什么 概述 Maven是一个项目管理和构建自…

linux 时间同步(阿里云ntp服务器)

1、安装ntp服务 rootlocalhost ~]# yum -y install ntp 已加载插件&#xff1a;fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.nju.edu.cn* centos-sclo-rh: mirrors.nju.edu.cn* centos-sclo-sclo: mirrors.huaweicloud.com* epel: m…

Apifox使用总结

将登录获取的token 赋值到接口中 登陆接口设置后置操作&#xff0c;代码如下 var data JSON.parse(responseBody) pm.environment.set(token, data.token)在需要配置登录的文件夹 选择 auth 选择 Bear Token 设置变量值 {{token}}