Python即学即用教程-第3章 列表与元组
教学重点
掌握列表的操作
掌握元组的操作
熟悉列表与元组的区别
3.1 列表概述
•在Python中,我们可以使用列表来存储“一组数据”。再回到例子中,像一堆变量,可以使用列表来实现,如下所示。
animals = [‘ant’, ‘bee’, ‘cat’, ‘dog’, ‘ewe’]
•列表属于序列的一种。在Python中,序列有3种:列表、元组和字符串。
3.2 创建列表
•在Python中,我们可以使用中括号“[]”来创建一个列表。
•语法:
listname= [value1, value2, ... , valueN]
# 创建一个空列表
lst= []
# 创建一个包含3个元素的列表
lst= ['ant', 'dog', 'ewe']
# 列表元素可以是不同的数据类型
lst= [1, 2, 'Python', True, False]
# 列表元素还可以是列表
lst= [[1, 2], [3, 4], [5, 6]]
3.3 基本操作
•对于列表元素的操作,主要有4种:获取元素、修改元素、添加元素、删除元素。其实如果你接触过其他编程语言,会发现很多数据结构都有类似的4种操作。
1、获取元素
•在Python中,想要获取列表某一项的值,我们都是使用“下标”的方式来获取的。
•语法:
animals = [‘ant’, ‘bee’, ‘cat’, ‘dog’, ‘ewe’]
2、修改元素
•在Python中,想要获取列表某一项的值,我们都是使用“下标”的方式来获取的。
•语法:
list[n] = value
3、添加元素
•在Python中,如果想要往一个列表中加入一个新元素,我们有两种方法:insert()和append(),它们的区别如下。
insert()方法是在列表的“任意位置”插入一个新元素。
append()方法是在列表的“末尾”增加一个新元素。
4、删除元素
•在Python中,如果想要删除列表中的某个元素,我们可以使用3种方式:del、pop()和remove()。
(1)del
•在Python中,我们可以使用del关键字来删除列表中的某一个元素。del这种方式是根据“下标”来删除元素的。
•语法:
del list[n]
(2)pop()
•在Python中,我们可以使用pop()方法删除列表中的某一个元素(默认是最后一个元素),并且返回该元素的值。
•语法:
list.pop(n)
(3)remove()
•在Python中,我们还可以使用remove()方法来删除列表中某一个元素。remove()这种方式是根据“值”来删除元素的。
•语法:
list.remove(value)
•总结一下删除元素的方法,有以下4点。
del、pop()、remove()这3种方式都会修改原列表。
如果知道想要删除的值在列表中的下标,可以使用del和pop()。
如果不知道想要删除的值在列表中的下标,只知道值是什么,可以使用remove()。
如果不知道列表元素个数,却想要删除最后一个元素,可以使用pop()。
3.4 列表方法
•列表本质上是一个对象,Python为它内置了非常多有用的方法,常用的如下表所示。
列表的方法
1、统计元素的个数:count()
•在Python中,我们可以使用count()方法来统计某个元素在列表中出现的次数。
•语法:
list.count(value)
2、获取元素下标:index()
•在Python中,我们可以使用index()方法来获取列表中某个元素的下标。
•语法:
list.index(value)
3、颠倒元素顺序:reverse()
•在Python中,我们可以使用reverse()方法来颠倒列表元素的顺序。reverse就是“反向”的意思。
•语法:
list.reverse()
4、元素大小排序:sort()
•在Python中,我们可以使用sort()方法对列表中所有元素进行大小比较,然后按“升序”或者“降序”来进行排列。
•语法:
list.sort(reverse=False or True)
5、连接元素:join()
•在Python中,使用join()方法可以将列表中的所有元素连接成一个字符串。
•语法:
str.join(list)
6、合并列表:extend()
•在Python中,我们可以使用extend()方法来合并两个列表。
•语法:
A.extend(B)
•如果想要合并两个列表,我们可以使用两种方式: 一是extend(),二是列表相加。但是这两种方式也有本质上的区别。
extend()会修改原列表,例如第一个例子的nums1就被修改了,最终返回的是合并后的列表。
列表相加(+)不会修改原列表,例如第二个例子的nums1就没有被修改,如果想要得到合并的列表,我们需要使用一个新的变量来保存。
7、清空列表:clear()
•在Python中,我们可以使用clear()方法来清空一个列表。
•语法:
list.clear()
3.5 切片
•在Python中,我们可以使用“切片”的方式来截取列表的某一部分。
•语法:
list[m:n]
切片技巧
3.6 更多实用操作
•除了前面介绍的内容,还有一些比较有用的列表操作,包括获取列表长度、遍历列表、检索列表、数值计算等。
1、获取长度:len()
•在Python中,我们可以使用len()函数获取一个列表的长度。所谓的“列表长度”,指的是列表中元素的个数。
•语法:
len(list)
2、遍历列表:for-in
•在Python中,想要遍历列表的每一项,我们也是使用for循环来实现的。
•语法:
for item in list:
……
3、检索列表:in和not in
•在Python中,我们可以使用in运算符来判断某个值是否“存在”于列表中,也可以使用not in运算符来判断某个值是否“不存在”于列表中。其中,in和not in也叫“成员运算符”。
•语法:
value in list
value not in list
4、数值计算:max()、min()和sum()
•在Python中,如果一个列表是数值型的列表,我们可以使用max()、min()和sum()函数进行计算。
•语法:
max(list)
min(list)
sum(list)
5、列表运算
•在Python中,列表也是可以运算的。但是列表只有加法和乘法运算,没有减法和除法运算。
6、列表推导式
•在Python中,我们可以使用“推导式”快速生成一个列表。这种方式叫“列表推导式”或“列表生成式”。
•语法:
列表名 = [表达式 for 变量 in 可迭代对象]
3.7 二维列表
•一维列表只有1个下标,二维列表有2个下标。当然,n维列表就肯定有n个下标。
•对于一维列表来说,只需要用1层for循环就可以遍历完。但是对于二维列表来说,需要2层for循环才能遍历完。第1层用于控制“行数”的变化,第2层用于控制“列数”的变化。对于多维列表来说,有多少维,就应该使用多少层for循环。
3.8 元组
•在Python中,元组是一种跟列表非常相似的数据类型。我们都知道,列表是使用中括号“[]”创建的,而元组是使用小括号“()”创建的。
•语法:
tuplename= (value1, value2, …, valueN)
•在Python中,元组的大多数操作跟列表的操作是相同的。但是由于元组一旦定义,内部元素不可变动,因此不能增加元素、删除元素、修改元素,不能进行加法和乘法运算,也不能颠倒顺序和大小排序。
•总而言之:凡是改变元组内部元素的操作都不允许。
3.9 试一试:列表去重
•有一个列表:[15, 15, 33, 8, 17, 45, 8, 15],请编写一个程序来去除列表中重复的元素,最终列表的值为:[15, 33, 8, 17, 45]。
3.10 试一试:输出月份
•输入一个1到12之间的整数,然后输出对应的月份名称。比如输入“1”,就应该输出“January”。输入“2”,就应该输出“February”,依此类推。
3.11 试一试:求列表中的最大值
•请编写一个Python程序,要求:将任意5个整数输入到一个列表中,然后求出该列表的最大值,并且输出这个最大值。其中,不允许使用max()函数。