笔记内容:Python3 列表
笔记日期:2017-10-25


Python3 列表

列表是Python中最基本的数据结构,也是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表中的每个元素都分配一个数字 - 那就是它的下标,或者说索引,第一个索引是永远是从0开始,第二个索引是1,依此类推。列表也被称之为序列,和数组的概念有点像,只不过一个列表中可以放不同类型的数据,类似于Java中的Object集合,所以列表的数据项不需要具有相同的类型,并且列表的大小可以自动伸缩,这一点和集合的概念一样的。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。代码示例:

list1 = ['Google', 'Runoob', 1997, 2000];list2 = [1, 2, 3, 4, 5 ];list3 = ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

访问列表中的值

使用下标索引来访问列表中的值,同样的你也可以使用方括号的形式截取列表中的元素,代码示例:

list1 = ['hello', 'world', 123, 456]list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]print("list1的第0个下标值是:", list1[0])print("list2下标0-5以内的值是:", list2[0:5])

运行结果:

 list1的第0个下标值是: hello

 list2下标0-5以内的值是: [1, 2, 3, 4, 5]

更新列表

你可以对列表的数据项进行修改或更新,所谓更新就是重新对这个列表中的某个下标赋值,重新赋值后会覆盖原来的值,代码示例:

list1 = ['hello', 'world', 123, 456]print("list1的第0个下标值为:", list1[0])list1[0]="你好"print("更新之后list1的第0个下标值为:", list1[0])

运行结果:

 list1的第0个下标值为: hello

 更新之后list1的第0个下标值为: 你好

删除列表元素

可以使用 del 语句来删除列表的的元素,代码示例:

list1 = ['hello', 'world', 123, 456]print("现在list1中的有元素有:",list1)del list1[1]print("删除第1个元素后有:",list1)

运行结果:

 现在list1中的有元素有: [‘你好’, ‘world’, 123, 456]

 删除第1个元素后有: [‘你好’, 123, 456]

列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

如下所示:

Alt text

Alt text

列表截取与拼接代码示例:

list1 = ['hello', 'world', 123, 456]#截取print(list1[2])print(list1[-2])print(list1[1:])运行结果:456123[123, 456]#拼接,只能在python控制台中使用>>> list1 = ['hello', 'world', 123, 456]>>> list1+[1, 2, 3, 4, 5, 6, 7, 8, 9]['hello', 'world', 123, 456, 1, 2, 3, 4, 5, 6, 7, 8, 9]

二维列表

二维列表即是列表中还有列表,使用二维列表即在列表里创建其它列表,下面示例两种常用的二维列表声明方式,代码示例:

list1 = ['hello', 'world', 123, 456]list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]list3 = [list1, list2]print(list3)list4 = [['hello', 'world', 123, 456],[1, 2, 3, 4, 5, 6, 7, 8, 9]]print(list4)

运行结果:

 [[‘hello’, ‘world’, 123, 456], [1, 2, 3, 4, 5, 6, 7, 8, 9]]

 [[‘hello’, ‘world’, 123, 456], [1, 2, 3, 4, 5, 6, 7, 8, 9]]

二维列表使用的不多,一般大部分用来做2D游戏的地图

Python列表函数&方法

Python包含以下函数:

Alt text

Python包含以下方法:

Alt text

下面用实际代码演示几个较为常用的方法,代码示例:

list1 = ['hello', 'world', 123, 456, 123, 'hello']list2 = [45, 12, 78, 56, 3, 2, 48, 78, 156, 45, 1]list1.append('addObj')print("在末尾添加了一个新的值:", list1)list1.insert(2, 'InsertObj')print("在下标2的位置插入了一个新的值:", list1)print("123这个值的第一个索引位置:", list1.index(123))list1.remove('hello')print("删除了列表中第一个‘hello’:", list1)list2.sort()print("排序后的list2:", list2)list2.reverse()print("反向排序后的list2:", list2)list3 = list1.copy()print("将list1的数据复制到list3中:", list3)list3.clear()print("清空list3中的数据:", list3)

运行结果:

 在末尾添加了一个新的值: [‘hello’, ‘world’, 123, 456, 123, ‘hello’, ‘addObj’]

 在下标2的位置插入了一个新的值: [‘hello’, ‘world’, ‘InsertObj’, 123, 456, 123, ‘hello’, ‘addObj’]
 123这个值的第一个索引位置: 3
 删除了列表中第一个‘hello’: [‘world’, ‘InsertObj’, 123, 456, 123, ‘hello’, ‘addObj’]
 排序后的list2: [1, 2, 3, 12, 45, 45, 48, 56, 78, 78, 156]
 反向排序后的list2: [156, 78, 78, 56, 48, 45, 45, 12, 3, 2, 1]
 将list1的数据复制到list3中: [‘world’, ‘InsertObj’, 123, 456, 123, ‘hello’, ‘addObj’]
 清空list3中的数据: []