序列
-
序列:由一系列按特定顺序排列的元素组成
-
序列是Python中最基本的数据结构之一。序列中的每个元素都分配一个索引(这个索引类似于它的身份证号,代表它在序列中的位置),第一个元素的索引是0,第二个元素的索引是1,依此类推,所以最后一个元素的索引是 N - 1。序列都可以进行的操作包括索引,切片,加,乘,检查成员等
-
Python中常用的序列的类型有:列表、元组、字典、字符串、集合等,序列都可以进行的操作包括索引、切片、加、乘、检查、删除、检查成员等
-
此外,Python已经内置可以确定序列的长度以及确定最大和最小的元素的方法
列表
- 通常具备以下几个特点:
- 列表中元素顺序是有序的。比如,你将1,2,3依次存入列表,这个列表中元素顺序一定是1,2,3,而不会是其他的
- 列表长度不确定。不同于C/C++里的数组,列表长度不确定,在使用列表时不需要提前声明长度
- 列表中存储的元素类型可以不唯一。可以将任何东西加入列表中,或者可以同时分别为整数、浮点数、字符串等基本类型,也可以是列表、元组、字典、集合以及其他自定义类型的对象
- 列表中可以有重复元素
例如,下面几个都是合法的列表:
[10, 20, 30, 40]
[‘DaSheng’, ‘WuKong’, ‘teacher’]
[‘DaSheng’, 2.0, 5, [10, 20.5, ‘WuKong’] ]
[ [‘file1’, 200, 78], [‘file2’, 234, 90] ]
[ {3}, {5:6}, (1, 3, 6) ]
创建列表
- 只要把逗号分隔开的不同的数据项,使用方括号括起来即可。如上或下所示:
a_List = [1, 4.6, “DaSheng”]
- 创建的列表可以为空,如下所示:
b_List = [ ] #创建空列表
访问列表中的值
- 从列表中获取元素,可以使用元素下标索引号来访问列表中的值,第一个元素的索引是0,第二个元素的索引是1,依此类推,所以最后一个元素的索引是 N - 1,如下所示:

#coding=utf-8
List1 = ["DaSheng", "Wukong", 80, 99.99, "JS Boom"]
print "List1[0]:", List1[0]
################## 结果 ################
#List1[0]: DaSheng
- 那么,如果想要获取前两个以上元素又怎么获取呢?
切片
- 什么是切片:处理列表的部分元素,称之为切片
- 如何使用:在语法上,切片使用2个冒号分隔的3个数字来完成,第一个数字表示切片的开始位置(默认为0),第二个数字表示切片的截止(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以同时省略最后一个冒号,例代码如下:
#coding=utf-8
List1 = ["DaSheng", "Wukong", 80, 99.99, "JS Boom"]
print "List1[0: 4]:", List1[0: 4]
print "List1[0: 5]:", List1[0: 5]
print "List1[1: 1]:", List1[1: 1]
print "List1[: 2]:", List1[: 2]
print "List1[: -2]:", List1[: -2]
print "List1[2: ]:", List1[2: ]
print "List1[-2: ]:", List1[-2: ]
############## 结果 ######################
List1[0: 4]: ['DaSheng', 'Wukong', 80, 99.99]
List1[0: 5]: ['DaSheng', 'Wukong', 80, 99.99, 'JS Boom']
List1[1: 1]: []
List1[: 2]: ['DaSheng', 'Wukong']
List1[: -2]: ['DaSheng', 'Wukong', 80]
List1[2: ]: [80, 99.99, 'JS Boom']
List1[-2: ]: [99.99, 'JS Boom']
代码解析:
- List1[0:4]:从索引0开始到索引4结束,但不包括索引4,即只输出索引0到3的三个列表元素
- List1[0:5]:从索引0开始到索引5结束,索引5理解为索引4后面那个即可,即输出索引0到4的四个列表元素
- List1[1:1]:从索引1开始到索引1结束,但又不包含索引1,所以输出结果为空列表
- List1[:2]:没有指定开始索引号时,默认从索引0开始,输出索引0到1的两个列表元素,相当于List1[0:2]
- List1[:-2]:默认从索引0开始到倒数第二个元素结束,倒数从 -1 开始数起
- List1[2: ]:没有指定结束索引号时,默认输出后面所有的元素,即从索引2开始到后面所有元素
- List1[-2:]:从倒数第二个开始,输出后面所有的元素
增加元素
有时候我们需要在已经创建好的列表中添加元素,Python已经给我们准备好了3个方法,假如现有列表lst
- lst.append( x ) :将元素 x 添加至列表lst末尾,只能添加一个元素
- lst.extend( L ) :将列表 L 中所有元素添加至列表lst末尾,以列表形式添加多个元素
- lst.insert( index, x ) :在列表lst指定位置index处插入元素x,该位置后面的所有元素后移一个位置
#coding=utf-8
lst = [1, 2, 3, 4, 5]
########### 只添加一个元素 ##########################
lst.append(6)
print(lst) #[1, 2, 3, 4, 5, 6]
################ 添加多个元素 #######################
lst.extend([7, 8, 9])
print(lst) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
############### 在指定位置插入元素 ###################
lst.insert(3, "DaSheng")
print(lst) #[1, 2, 3, 'DaSheng', 4, 5, 6, 7, 8, 9]
删除元素
-
lst.pop( index ):在列表lst中删除下标 index 的元素(默认是最后一个),并且返回该下标元素
-
lst.remove( x ) : 在列表lst 中删除第一次出现的指定元素,该元素之后的所有元素向前移动一个位置
-
lst.clear( ):删除列表 lst 中所有元素,但保留列表对象( Python 3)
-
del lst[ index ]:del 命令删除列表中指定位置的元素,当列表不再使用时,也可以del 命令将其删除,这一点适用于所有类型的Python对象
#coding=utf-8
lst = [1, 2, 2, "DaSheng", 3, 4, 5, "DaSheng"]
lst.pop(1)
print(lst) # [1, 2, 'DaSheng', 3, 4, 5, 'DaSheng']
lst.remove("DaSheng")
print(lst) # [1, 2, 3, 4, 5, 'DaSheng']
lst.clear()
print(lst) # []
lst = ["JS Boom", "Python", "Java", "HTML"]
del lst[2]
print(lst) # ['JS Boom', 'Python', 'HTML']
del lst
print(lst) # NameError: name 'lst' is not defined
修改元素
在已经创建好的列表中,您可以修改其中的元素,主要通过访问该元素来修改,因为列表是可变序列,所以可以通过重新赋值的方式来修改
#coding=utf-8
lst = [1, 2, "DaSheng", 3, 4, 5, "DaSheng"]
print(lst) # [1, 2, 'DaSheng', 3, 4, 5, 'DaSheng']
lst[2] = "WuKong"
print(lst) # [1, 2, 'WuKong', 3, 4, 5, 'DaSheng']
列表其他方法
| 方法 | 说明 |
|---|---|
| list.count( obj ) | 返回指定元素obj在列表list中的出现次数 |
| list.index( obj ) | 返回列表 list 中第一个值为 obj 的元素的下标,若不存在值为 obj 的元素则抛出异常 |
| list.sort( key = None, reverse = False ) | 对列表 list 中的元素进行排序, key 用来指定排序依据,reverse决定升序(False)还是降序(True) |
| list.reverse( ) | 对列表 list 所有元素进行逆序 |
| list.copy( ) | 返回列表 list 的浅复制 |
列表函数
- len( list ) :返回该列表里元素的个数
#coding=utf-8
lst = [1, 2, "DaSheng", 3, 4, 5, "DaSheng"]
print(len(lst)) # 7
遍历列表
- 方法一:for in 循环遍历列表
#coding=utf-8
lst = ["JS Boom", 123, "Python", "DaSheng", 999, "Java"]
for item in lst:
print(item)
- 方法二:while 循环遍历列表
#coding=utf-8
lst = ["JS Boom", 123, "Python", "DaSheng", 999, "Java"]
count = 0
while count < len(lst):
print(lst[count])
count = count + 1
- 方法三:下标索引遍历列表
#coding=utf-8
lst = ["JS Boom", 123, "Python", "DaSheng", 999, "Java"]
for index in range(len(lst)):
print(lst[index])
- 方法四:使用enumerate方法
#coding=utf-8
lst = ["JS Boom", 123, "Python", "DaSheng", 999, "Java"]
for index, val in enumerate(lst):
print(index, val)
列表嵌套
有时候我们在存储数据时,需要同时保存包含行和列的数据,比如存储学生姓名和成绩,或商品名称和价格等,这时我们可以使用双重列表,或者是列表嵌套来标书行和列的数据
JasperMarks = [99, 100, 89]
TomMarks = [90, 98, 99]
JerryMarks = [78, 99, 97]
classMarks1 = [JasperMarks, TomMarks, JerryMarks]
print(classMarks1)
classMarks2 = [[99, 100, 89], [91, 98, 99], [79, 97, 97]]
print(classMarks2)
嵌套列表的编列
classMarks = [[99, 100, 89], [91, 98, 99], [79, 97, 97]]
for i in range(len(classMarks)):
for j in range(len(classMarks[i])):
print(classMarks[i][j])
本文详细介绍了Python中的序列,特别是列表这一重要的数据结构。列表具有有序、长度可变、元素类型不限等特点,可以进行索引、切片、增删改等操作。文章讲解了如何创建列表、访问和修改元素,以及切片、添加和删除元素的方法,并讨论了遍历列表和列表嵌套等概念。
14万+

被折叠的 条评论
为什么被折叠?



