一、列表
在介绍列表之前,我们先了解一下Python中“序列”的概念。在Python中,序列是最基本的数据结构。序列中的每个元素都被分配一个数字,以表明它的位置,并称之为索引。其中,第一个索引值为0,第二个索引值为1,依此类推。
Python中的序列都可以进行索引、切片、加、乘、检查成员等操作。为了使用方便,Python还内建了确定序列长度以及确定最大和最小元素的方法。
Python中最常用的序列是列表和元组,本节介绍列表,元组放在下一节介绍。
1.列表的概念
列表(list)是Python中使用最频繁的数据类型,它是放在方括号([])内、用逗号分隔的一系列元素。
列表中元素的类型可以不同,它支持数字、字符串甚至可以包含列表。换言之,列表允许嵌套。
2.列表的创建
创建一个列表,只要把逗号分隔的不同的数据项用方括号括起来即可。例如:
list1 = ['Google', 'Runoob', 1997, 2017]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
与字符串一样,列表同样可以被索引、截取和组合。列表被截取后返回一个包含所需元素的新列表。与字符串的索引一样,列表索引也是从0开始的。
3.列表的访问与截取
可以使用下标索引来访问列表中的元素,同样,也可以使用类似于字符串切片运算的形式截取列表中的元素
str="0123456789"
print ("str[0:3]:",str[0:3]) #截取第一位到第三位的字符
print ("str[:]:",str[:]) #截取字符串的全部字符
print ("str[6:]:",str[6:]) #截取第七个字符到结尾
print ("str[:-3]:",str[:-3]) #截取从头开始到倒数第三个字符之前
print ("str[2]:",str[2]) #截取第三个字符
print ("str[-1]:",str[-1]) #截取倒数第一个字符
print ("str[::-1]:",str[::-1]) #创建一个与原字符串顺序相反的字符串
print ("str[-3:-1]:",str[-3:-1]) #截取倒数第三位与倒数第一位之前的字符
print ("str[-3:]:",str[-3:]) #截取倒数第三位到结尾
print ("str[:-5:-3]:",str[:-5:-3]) #逆序截取
令L=['Google', 'Runoob', 'Taobao']
则截取操作如表3-1所示。
表3-1 Python列表的截取操作
Python 表达式 | 结果 | 描述 |
L[2] | 'Taobao' | 读取第三个元素。 |
L[-2] | 'Runoob' | 从右侧开始读取倒数第二个元素。 |
L[1:] | ['Runoob', 'Taobao'] | 输出从第二个元素开始的所有元素。 |
下面将上述的列表截取操作放入一个程序中。
注意:字符串、列表和元组三者都是序列,都支持切片运算,操作方法也极为相似,只是操作结果的类型有所不同。此外,不能通过切片运算对字符串和元组进行更新,列表则可以。
4.列表的更新
可以对列表的数据项进行修改或更新,也可以使用append()方法(稍后介绍)添加一些列表项,例如:
L=['Google', 'Runoob', 'Taobao']
L.append('JingDong')
print(L) #['Google', 'Runoob', 'Taobao', 'JingDong']
5.列表元素的删除
可以使用 del 语句来删除列表中的元素,例如:
L=['Google', 'Runoob', 'Taobao']
del L[2]
print('删除后,剩余的元素',L) #运行结果:删除后,剩余的元素 ['Google', 'Runoob']
使用remove()方法也可以删除列表的元素。
6.列表操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。+ 和 * 的用法如表3-2所示。
表3-2列表中+和*的用法
Python 表达式 | 结果 | 描述 |
len([1, 2, 3]) | 3 | 长度(列表中元素的个数) |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合(即拼接)。 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复。 |
3 in [1, 2, 3] | True | 元素是否存在于列表中。 |
for x in [1, 2, 3]: print (x,end=' ') | 1 2 3 | 遍历并输出列表的各个元素。 |
注意:为了让列表的各个元素打印在一行上,而且相邻两个元素之间隔一个空格,表3-2的最后一行使用了“print (x,end=' ')”这种打印格式,后面遍历元组和集合时采用了同样的方法。
7.列表嵌套
列表嵌套指的是在列表里创建其它列表,例如:
a = [1,2,3,4]
b = [5,6,7,8,9]
c =[a,b]
print('a列表:',a) #a列表: [1, 2, 3, 4]
print('b列表:',b) #b列表: [5, 6, 7, 8, 9]
print('嵌套后的列表:',c) #嵌套后的列表: [[1, 2, 3, 4], [5, 6, 7, 8, 9]]
8.Python列表中的内建函数与方法
Python列表中的内建函数如表3-3所示。
表3-3 Python列表中的内建函数
序号 | 函数 |
len(list) | 返回列表元素的个数。 |
max(list) | 返回列表元素的最大值。 |
min(list) | 返回列表元素的最小值。 |
list(seq) | 将元组转换为列表。 |
Python列表中的方法如表3-4所示。
表3-4 Python列表中的方法
方法 | 作用 |
list.append(obj) | 在列表末尾添加新的对象。 |
list.count(obj) | 统计某个元素在列表中出现的次数。 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。 |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置。 |
list.insert(index, obj) | 将对象插入列表。 |
list.pop(obj=list[-1]) | 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 |
list.remove(obj) | 移除列表中某个值的第一个匹配项。 |
list.reverse() | 将列表中的元素反向。 |
list.sort([func]) | 对原列表进行排序。 |
list.clear() | 清空列表。 |
list.copy() | 复制列表。 |