Python中列表及其操作

article/2025/5/11 1:09:37

文章目录

  • 前言
  • 一、列表简介
  • 二、访问列表元素
  • 三、修改、添加和删除列表元素
    • 1.修改列表元素
    • 2.在列表中添加元素
    • 3.从列表中删除元素
  • 四、对列表元素排序
  • 五、确定列表长度
  • 六、遍历列表
  • 七、创建数值列表
    • 1.函数range()的使用
    • 2.创建数字列表
    • 3.列表解析
    • 4.处理数字列表的函数应用
  • 八、切片
  • 九、元组
  • 总结


前言

本文的主要内容是介绍Python中的列表及其方法的使用,涉及到的方法包括对列表元素进行修改、添加、删除、排序以及求列表长度等,此外还介绍了列表的遍历、数值列表、切片和元组的一些操作,文中附有代码以及相应的运行结果辅助理解。


一、列表简介

列表由一系列按特定顺序排列的元素组成,它能够在一个地方存储成组的信息,其中元素的个数可以只有几个,也可以有数百万个。
在Python中,用方括号来表示列表,并用逗号来分隔其中的元素,每个元素用单引号(也可以是双引号)括起来。
下面的代码就是一个简单的列表示例。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']

尝试打印一下列表,代码如下。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print(fruits)

输出结果如下图。
在这里插入图片描述
可以看到,如果简单的打印列表,其输出结果就包含方括号、引号、元素名称和逗号,这不是期待的输出,下面来介绍怎么访问列表元素。


二、访问列表元素

列表是一个有序的集合,因此要访问列表中的任何一个元素,只要给出列表的名称,再给出该元素的索引并将其放在方括号内,即可实现访问。
在Python中,索引是从0开始的,元素的索引均是其位置减1。
如果不知道列表的长度,但要访问最后一个元素,只要将索引指定为-1,Python即可返回最后一个列表元素,同理,索引为-2可返回倒数第二个列表元素。
下面是访问列表元素的例子。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print("The first element of fruits is "+fruits[0]+".")
print("The second element of fruits is "+fruits[1]+".")
print("The last element of fruits is "+fruits[-1]+".") #访问最后一个列表元素

输出结果如下图所示。
在这里插入图片描述


三、修改、添加和删除列表元素

1.修改列表元素

修改列表元素只要指定列表名和要修改的元素的索引,再赋值给该元素新值即可。
下面是修改列表元素的例子。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Before modify:\nfruits = '+str(fruits))fruits[1] = 'mango' #修改第二个元素
print('After modify:\nfruits = '+str(fruits))

输出结果如下图所示。
在这里插入图片描述


2.在列表中添加元素

在列表中添加元素有以下两个方法。
append(value) —— 在列表末尾添加元素。
insert(index,value) —— 在列表指定的位置添加元素。
方法append()通过追加的方式在列表的末尾插入元素,这很方便,但是有时候需要在列表指定的位置插入某个元素,这时就需要用到方法insert(),将元素插入到指定的位置后,原列表中该位置之后的元素索引均加1,该位置之前的元素索引不变。
下面是在列表中添加元素的例子。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Original:\nfruits = '+str(fruits))fruits.append('mango')
print('After append:\nfruits = '+str(fruits))fruits.insert(2, 'watermelon')
print('After insert:\nfruits = '+str(fruits))

输出结果如下图所示。
在这里插入图片描述


3.从列表中删除元素

从列表中删除元素有以下三个方法。
del listname[index] —— 从列表中删除一个元素,且不再使用。
pop(index) —— 从列表中删除一个元素,后续还会再使用。
remove(‘element name’) —— 不知道要从列表中删除的值所处的位置,但知道要删除元素的值。
如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后还能继续使用它,就使用方法pop();如果只知道要删除的元素的值,就使用方法remove(),方法remove()只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
删除掉某一元素后,该元素之后的元素索引均减1,该元素之前的元素索引不变。
下面是从列表中删除元素的例子。

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'apple', 'pear', 'mango']
print('Original:\nfruits = '+str(fruits))del fruits[2]  #删除列表的第三个元素
print('After del:\nfruits = '+str(fruits))fruit_popped = fruits.pop(-1)  #删除列表的最后一个元素
print('After pop:\nfruits = '+str(fruits))
print('The popped fruit is ' + fruit_popped + '.')fruit_remove = 'apple'
fruits.remove(fruit_remove) #删除列表中名为fruit_remove的第一个元素
print('After remove:\nfruits = '+str(fruits))
print('The removed fruit is ' + fruit_remove + '.')

输出结果如下图所示。
在这里插入图片描述


四、对列表元素排序

对列表元素排序有以下三个方法。
sort() —— 对列表进行永久性排序。
sorted() —— 对列表进行临时排序。
reverse() —— 反转列表元素的排列顺序。
下面是使用sort()对列表元素排序的例子。

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('原列表:\nfruits = '+str(fruits))fruits.sort() #按首字母顺序
print('顺序排列:\nfruits = '+str(fruits))fruits.sort(reverse=True) #按首字母倒序
print('倒序排列:\nfruits = '+str(fruits))

输出结果如下图所示。
在这里插入图片描述
下面是使用sorted()对列表元素排序的例子。

num = ['1', '8', '6', '4', '9'] #这里的列表元素不加引号也可
print('原列表:\nnum = '+str(num))print('临时排序:\nnum = '+str(sorted(num))) #临时排序
print('再一次输出原列表:\nnum = '+str(num))

输出结果如下图所示。
在这里插入图片描述
下面是使用reverse()对列表元素排序的例子。

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('原列表:\nfruits = '+str(fruits))fruits.reverse() #逆向排列列表元素
print('逆向排列:\nfruits = '+str(fruits))

输出结果如下图所示。
在这里插入图片描述


五、确定列表长度

确定列表长度的方法如下。
len() —— 求列表长度。
下面是确定列表长度的例子。

fruits = ['grape', 'apple', 'watermelon', 'banana', 'orange', 'pear', 'mango']
print('列表 fruits 的长度为:'+str(len(fruits)))num = ['1', '8', '6', '4', '9']
print('列表 num 的长度为:'+str(len(num)))

输出结果如下图所示。
在这里插入图片描述


六、遍历列表

在Python中,如果需要对列表中的每个元素都执行相同的操作,可使用for循环。
下面是遍历整个列表的例子,注意for循环中各代码行的缩进,缩进不同,执行的次数也不同。

fruits = ['grapes', 'apples', 'bananas', 'oranges', 'pears']
for fruit in fruits:print(fruit)print('I like '+str(fruit)+'.') #缩进,列表的长度是多少,就执行多少次
print('There are '+str(len(fruits))+' fruits here.') #不缩进,for循环结束后执行,执行1次

输出结果如下图所示。
在这里插入图片描述
编写for循环时,用于存储列表中每个值的临时变量可以指定任何名称,一般使用单数和复数式的名称可帮助我们更好地判断代码段处理的是单个列表元素还是整个列表。


七、创建数值列表

列表非常适合用于存储数字集合,而Python提供了很多工具可帮助我们高效地处理数字列表,下面来看怎么创建数值列表。

1.函数range()的使用

range(start, end, step length) —— 在start到end这个左闭右开区间上生成步长为step length的一系列数字,含start值但不含end值,如果没有参数step length,默认步长为1。
下面是函数range()使用的例子。

print('1-5之间步长为1的输出:')
for value in range(1,5):print(value)print('1-5之间步长为2的输出:')
for value in range(1,5,2):print(value)

输出结果如下图所示。
在这里插入图片描述

2.创建数字列表

将range()作为list()的参数,输出将为一个数字列表。当然,也可以创建一个空的列表,然后通过for循环将函数range()生成的数依次追加到列表中,这样也可以生成一个数字列表。
下面是使用函数range()创建数字列表的例子。

nums = list(range(1,5)) #直接使用函数list()创建列表
print('方法一:nums = '+str(nums))nums=[]  #通过for循环创建列表
for value in range(1,5):nums.append(value)
print('方法二:nums = '+str(nums))

输出结果如下图所示。
在这里插入图片描述
可以看到,这两种方法的输出结果是一样的。

3.列表解析

列表解析是将for循环和创建新元素的代码合并成一行,并自动附加新元素。
下面通过一个例子了解列表解析。

squares = []
for value in range(1,11):squares.append(value**2)
print('一般方法:squares = ' + str(squares))squares = [value**2 for value in range(1,11)] #列表解析
print('列表解析法:squares = ' + str(squares))

输出结果如下图所示。
在这里插入图片描述
由输出结果可知,虽然两者的输出结果相同,但是列表解析能够有效的缩减代码的行数。

4.处理数字列表的函数应用

下面是几个专门用于处理数字列表的Python函数。
min() —— 求列表最小值。
max() —— 求列表最大值。
sum() —— 求列表元素之和。
下面是这几个函数应用的例子。

nums = [value for value in range(1,11)]
print('nums = ' + str(nums))
print('列表nums中的最小值为:' + str(min(nums)))
print('列表nums中的最大值为:' + str(max(nums)))
print('列表nums的所有元素之和为:' + str(sum(nums)))

输出结果如下图所示。
在这里插入图片描述


八、切片

创建切片需要指定要使用的第一个元素和最后一个元素的索引,与函数range()类似,Python在到达指定的第二个索引前面的元素后停止。可以灵活运用索引使其从开头访问或访问至列表末尾,甚至从头至尾复制列表。
下面是切片应用的例子。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('fruits = '+str(fruits))print('列表fruits的前三个元素:'+str(fruits[:3]))
print('列表fruits的后三个元素:'+str(fruits[-3:]))
print('列表fruits的全部元素:'+str(fruits[:])) #复制列表print('遍历列表fruits的前三个元素:')
for fruit in fruits[0:3]:  #遍历列表fruits的前三个元素print(fruit)

输出结果如下图所示。
在这里插入图片描述
下面这个例子用来区分切片和列表关联的区别。

fruits = ['grape', 'apple', 'banana', 'orange', 'pear']
print('Original fruits = '+str(fruits))
fruits_1 = fruits[:]  #复制列表fruits_2 = fruits #列表fruits和fruits_2相关联
fruits.append('mango')
fruits_2.append('watermelon')print('After append fruits = '+str(fruits))
print('fruits_1 = '+str(fruits_1))
print('fruits_2 = '+str(fruits_2))

输出结果如下图所示。
在这里插入图片描述
由输出结果可以看到,复制列表和关联列表的区别还蛮大的,复制列表之后,原列表再更改也和已经复制到的列表无关,但是两个列表关联后,无论哪个列表变动都会同步到另一个列表,因为两个变量都指向了同一个列表。


九、元组

列表非常适合用于存储在程序运行期间可能变化的数据集,然而,有时候我们需要创建一系列不可修改的元素,元组可以满足这种需求。
Python将不能修改的值称为不可变的,而不可变的列表被称为元组。元组和列表类似又有区别,它使用的是圆括号而不是方括号来标识,定义元组后,就可以使用索引像访问列表元素一样来访问元组。
在Python中,不能给元组的元素赋值,修改元组的操作是被禁止的,但可以给存储元组的变量赋值。
下面是元组应用的例子。

group = (100, 50)
print('group = '+str(group))
print('打印元组内元素:')
print(group[0])
print(group[1]) #打印元组中的各个元素print('遍历元组:')
for element in group: #遍历元组print(element)print('修改元组变量后输出:')
group = (200, 100) #修改元组变量,给元组赋新值
for element in group:print(element)

输出结果如下图所示。
在这里插入图片描述


总结

以上就是Python中列表及其操作的所有内容了,文中提到的一些方法都是对列表的简单操作,应当多加练习牢记,并在之后的编程中熟练使用。
本文参考书目:Python 编程 :从入门到实践 / (美) 埃里克•马瑟斯(Eric Matthes)著;袁国忠译


http://chatgpt.dhexx.cn/article/TNfgVtRy.shtml

相关文章

python列表的基础操作

python列表的操作 列表是python最为基础的数据结构,极为重要。 这话怎么理解呢? 是最常用的,想不到其他的,就用列表是其他数据结构的基础,可以继承列表然后定义属于自己的数据类型是numpy,pandas等数据包的基石&…

python教程:12种列表常用操作方法

都是基础知识,长久不用就会忘,温故知新,又来学习学习。相信很多人在编程的或者对一些程序处理的思维会用到,比如面试 (有写的不对的地方也请大家指正~ 一、列表定义 列表是一个有序且可更改的集合。在Pyth…

python教程 列表list操作

python的列表 一、常用操作1、创建列表2、索引操作 二、列表的增删改查1、增加 一、常用操作 1、创建列表 list1 [] #创建一个空列表 list2 [1, 2, 3, 4, 5, -1] #创建一个数字型列表 list3 [“a”, “q”, “w”, “s”, “d”, “f”, “e”] #创建一个字符型列表 li…

Python列表操作详解

目录 前言: 1、列表的创建与删除 1.1 创建有两种方式 1.2 列表特点: 2、列表的查询操作 2.1 给元素查索引 2.2 给索引查元素 2.3 获取列表中多个元素 2.4 使用循环遍历列表 3、列表元素的增,删,改 3.1 增添元素&…

Python中列表的常用操作

1、列表的格式:变量A的类型为列表 namesList [xiaoWang,xiaoZhang,xiaoHua] 比C语言的数组强大的地方在于列表中的元素可以是不同类型的 比如:testList [1, a] 2、打印出列表的数据 一、列表的循环遍历 1、for循环遍历 2、while循环遍历 二、列表的添…

找出数组中其中最大的数及其下标

1、在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。 代码如下: public static void main(String[] args) {int[] a new int[]{18,25,7,36,13,2,89,63};int x 0; //局部变量需要初始化int max a[0];//假设a[0…

海量数据处理 大量数据中找出最大的前10个数 (Top K 问题)

在工作中我们常遇到此类问题,从一个大量甚至海量的数据中取出前几个大的数。必须在海量的文章中取出点击量最大的10篇文章。 此类问题其实就是Top K问题。 给定一个数据(数据量海量 N),想找到前 K 个最大的或最小的元素。 eg&…

利用指针找最大值

利用指针找数组中最大的值 实现的方法很简单&#xff0c;输入完了以后在进行循环判断&#xff0c;遍历数组在使用一个值专门来记数组最大值的下标就可以了&#xff0c; #include <stdio.h> #include <Windows.h>#define MAX 10 int main(void) {int w 0, a[MAX]…

编写一个Java应用程序,产生20个50-100之内的整数,并输出这20个数并找出最大数及最小数输出

思路&#xff1a; 首先调用random()方法产生随机数&#xff0c;用数组存储&#xff0c;然后用两个for循环求出其中的最大值和最小值&#xff0c;最后打印输出这两个最值。 代码实现&#xff1a; public class Test {public static void main(String args[]){int a[] new int…

编写一个Java应用程序,产生20个50-100之内的整数,并输出这20个数并找出最大数及最小数输出。

编写一个Java应用程序&#xff0c;产生20个50-100之内的整数&#xff0c;并输出这20个数并找出最大数及最小数输出。 (1)思路 定义一个start变量和end变量表示范围的起点和终点&#xff0c;分别赋值为50和100&#xff0c;利用random.nextInt&#xff08;end-start1&#xff0…

分别用函数和带参的宏,从3个数中找出最大数

分别用函数和带参的宏&#xff0c;从3个数中找出最大数 区分好函数和宏的区别&#xff0c;其各自不同的编写格式。 用函数实现如下&#xff1a; #include<stdio.h> int main() {int max(int a,int b);int a,b,c,m;printf("输入三个整数&#xff1a;\n");sca…

任意输入10个数,找出最大数和最小数。

任意输入10个数,找出最大数和最小数。 #include <stdio.h> int main () {int i,max,min;printf("输入数字:");scanf("%d\n",&max);//先输入一个数字当作最大值for(i1;i<9;i)//10-19&#xff0c;循环9次之后得到结果{scanf("%d",&a…

图解|查找数组中最大值的5种方法!

作者 | 王磊 来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09; 转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09; 我们在一些特定场景下&#xff0c;例如查询公司员工的最高薪资&#xff0c;以及班级的最高成绩又或者是面试中都会遇到查…

4-封装axios

源码github连接&#xff1a;baojinghui/MyAxios (github.com) 1&#xff0c;为什么要封装axios &#xff0c;因为当一个库不维护时&#xff0c;便于在封装的地方把不维护的库替换掉 2&#xff0c;因为axios返回的是一个实例对象&#xff0c;所以只能这一个实例上修改。但是我…

详解axios(快速入门)

axios这一篇就够啦~ axios1、axios的理解和使用1.1 axios概述1.2 axios特点1.3 axios常用语法1.4 难点语法的理解和使用 2、axios源码分析2.1 源码目录结构2.2 源码分析 axios 1、axios的理解和使用 1.1 axios概述 前端最流行的ajax请求库 react/vue官方都推荐使用axios 发a…

axios快速上手(简单使用)

axios对ajax请求进行了封装&#xff0c;并且使用promise的链式调用使得网络请求的代码逻辑更为清晰&#xff0c;同时支持async和await的编写方式使代码看起来像同步&#xff0c;更加方便于理解和阅读。axios这个库的体积也不大&#xff0c;先在项目里进行安装&#xff0c;npm i…

numpy的使用说明(六):一招帮你彻底搞懂axis=0和axis=1

1、关于axis轴的说明 思考&#xff1a;给你一个三维数组&#xff0c;你知道如何设置axis轴的值吗&#xff1f;下面这张图展示的结果你知道怎么来的吗&#xff1f;这些疑问都会在文中给你一一解答。 2、什么是维度&#xff1f; 举例说明 3、什么是高维&#xff0c;什么是低维…

axios(1)

json-server的介绍与服务搭建 作用 快速创建一个接口&#xff0c;以供Ajax请求 安装及使用 第三步&#xff08;注意路径以及在运行代码前加上npx&#xff09; axios的介绍与页面配置 在项目中 1.$ npm install axios 2.$ yarn add axios 学习阶段使用CDN方式 <scrip…

一文读懂Numpy(Tensorflow)里面的轴(Axis)

目录以及结论 Axis就是数组层级设axisi&#xff0c;则Numpy沿着第i个下标变化的方向进行操作Axis的应用 Axis就是数组层级 要想理解axis&#xff0c;首先我们先要弄清楚“Numpy中数组的维数”和"线性代数中矩阵的维数"这两个概念以及它们之间的关系。在数学或者物…

axios基础(一)

1.封装 最简单的封装&#xff08;这个了解下就行&#xff0c;主要看下下面&#xff09; <button onclick"testPost()">发送POST请求</button><script>function testGet(){axios({url:"https://api.hh2022.cn/main/searchPage/2023/1/5"…