文章目录

  • 前言
  • 一、列表简介
  • 二、访问列表元素
  • 三、修改、添加和删除列表元素
    • 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)著;袁国忠译

Python中列表及其操作相关推荐

  1. 四、Python第四课——Python中列表及其操作(增删改查)

    目录 一.Python中的列表 1.列表的定义和赋值 2.列表的使用 二.列表的"增删改查" 1.列表中元素的增加 A.在列表尾添加元素 B.在列表中插入元素 2.列表中" ...

  2. python的列表操作_在Python中列表的操作

    列表可以做什么? 假设你要创建一个基于<Go Fish>的游戏.如果你不知道<Go Fish>是什么,就去网上查一下.要实现这个游戏,你需要有一个办法,把"一摞纸牌& ...

  3. python中列表的操作

    列表的创建和删除 Python列表的表现形式类似于其它语言中的数组,列表中的元素使用"[]"包含,各元素之间使用英文逗号分隔 pop 是删除指定索引位置的元素,参数是 index. ...

  4. 【Python】Python实战从入门到精通之二 -- 教你使用Python中列表操作

    本文是Python实战–从入门到精通系列的第二篇文章: [Python]Python实战从入门到精通之一 – 教你深入理解Python中的变量和数据类型 Python实战从入门到精通之二 – 教你使用 ...

  5. Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  6. 手写Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  7. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  8. python中列表的sort方法_python中列表的sort方法使用详解

    内容简介:python中列表的sort方法使用详解 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符 ...

  9. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

最新文章

  1. 上交大博士生:博三经历5轮审稿被拒后,如今发10篇论文成为审稿人
  2. canvas刮奖效果
  3. 支持向量机libsvm实战入门
  4. 《编写高质量代码:改善c程序代码的125个建议》——建议4-1:整数转换为新类型时必须做范围检查...
  5. log4j无法显示mybatis sql
  6. OpenMP 线程化(Threading)基础(1)--并行计算简介
  7. python ju_如何使用jupy设置python路径
  8. 吴恩达机器学习(十一)K-means(无监督学习、聚类算法)
  9. python 列表、字典
  10. (十一)RabbitMQ消息队列-如何实现高可用
  11. (清华)华成英模拟电子技术基础PPT(完整版)
  12. matlab需要什么运行库,运行库是什么?常用软件运行库都有哪些?
  13. Skin Pack Auto UXThemePatcher-Win8 UXTheme桌面主题破解补丁
  14. /node_modules/.bin/vue-cli-service: Permission denied
  15. java计算机毕业设计员工婚恋交友平台源码+数据库+系统+lw文档+部署
  16. envi与arcgis文件转换_[转载]ArcGIS、MapInfo、ENVI、MapGIS等矢量格式相互转换
  17. 把乐谱换成c语言程序的软件,有没有什么软件可以把音乐换成简谱?
  18. OB52 记账期间变式和公司主数据关联关系
  19. LeetCode 561 Array Partition I(数组划分)
  20. 结构方程模型(SEM)概述(1)

热门文章

  1. 测试优先级 与 重点测试的讨论
  2. SAR数据的多视Multi-look,包括range looks和azimuth looks,如何设置多视比
  3. 【附源码】Java计算机毕业设计校园摄影爱好者交流网站(程序+LW+部署)
  4. P2863 [USACO06JAN]The Cow Prom S
  5. 一个用于Fathom Analytics的简单Vue插件
  6. 记录8 板块月线反转
  7. python(5) softmax回归实例
  8. 一台服务器最大能支持多少条 TCP 连接?面试官的话问倒一大片。。。
  9. HBuilder - git 关联远程仓库
  10. Unity3D引擎之高级渲染技术