列表的创建、索引与分片

2019-01-13  本文已影响14人  5f2a6061653d

列表是Python以及其他语言中最常用到的数据结构之一。Python中使用中括号[]来表示列表,具体示例如下:

student = [20190101, "隼与鱼", 18, 98]

列表的创建

列表是一组任意类型的值组合而成,组成列表的值称为元素,每个元素之间用逗号隔开,具体示例如下:

list1 = [1, 2, 3, 4, 5]                         # 元素为int型
list2 = ['简书', '作者', '隼与鱼']                                     # 元素为String型
list3 = ['隼与鱼', 18, 98]                         # 元素为混合类型
list4 = ['简书', ['隼与鱼', 18, 98]]                     # 列表嵌套列表

上述示例创建了4个列表,其中list4中嵌套一个列表,正是由于列表中元素可以是任意类型数据,才使得数据表示更加简单。
此外,还可以创建一个空列表,具体示例如下:

list5 = []

创建一个空列表有什么作用呢,很多情况下,编程者无法提前预知列表中包含多少个元素及每个元素的值,只知道将会用一个列表来保存这些元素。当有了空列表后,程序就可以向这个列表中添加元素。此处需注意,列表中的元素是可变的,这意味着可以向列表中添加、修改和删除元素。
列表中的元素还可以是变量,但是修改变量的值,并不会影响列表中元素的值,如下所示。

 1  name, age, score = '隼', 18, 95.5
 2  list1 = [name, age, score]
 3  print(list1)
 4  name, age, score = '鱼', 20, 100
 5  print(list1)
 6  print(name, age, score)

运行结果如下图所示。


运行结果

在上例中,第2行根据前面定义的变量创建一个列表,第4行修改变量的值。从程序运行结果可发现,变量修改前后,列表中元素的值没有发生变化。
此外,创建列表还可以通过list()函数,如下所示。

 1  list1 = list("sunyuyu")
 2  list2 = list(range(1,5))
 3  list3 = list(range(5))
 4  list4 = list(range(1, 5, 2))
 5  print(list1)
 6  print(list2)
 7  print(list3)
 8  print(list4)

运行结果如下图所示。


运行结果

在上例中,第1行将字符串中每个字符作为列表中的每个元素。第2行到第4行通过range()函数生成的一系列整数作为列表的元素,range()函数的用法如下表所示。

函数 说明
range(start,end) 返回一系列整数从start开始,到end-1结束,相邻两个整数差1
range(end) 返回列一系列整数从0开始,到end-1结束,相邻两个整数差1
range(start,end,step) 返回一系列整数从start开始,相邻两个整数差step,结束整数不超过end-1

列表的索引与分片

列表的索引与字符串的索引类似,都分为正向与反向索引,如下图所示。


列表索引.png

在上图中,列表中每一个元素都对应两个下标,例如索引列表中元素5,可以通过以下两种方式:

list1[4]
list1[-4]

列表的分片与字符串的分片也类似,列表的分片可以从列表中取得多个元素并组成一个新列表,接下来演示列表的分片,如下所示。

 1  list1 = [1, 2, 3, 4, 5, 6, 7, 8]
 2  print(list1[2:6])
 3  print(list1[2:6:2])
 4  print(list1[:6])
 5  print(list1[2:])
 6  print(list1[-6:-2])
 7  print(list1[-6:-2:2])
 8  print(list1[::-2])

运行结果如下图所示。


运行结果

在上例中,注意对原列表进行分片操作后返回一个新列表,原列表并没有发生任何变化。

上一篇 下一篇

猜你喜欢

热点阅读