python基础系列——列表知识点,函数及操作(持续更新中)

python基础系列之列表知识点

  • 前言:
  • 一 列表简介
  • 二 列表基本操作
    • 1 列表的创建
    • 2 列表迭代与解析
      • 2.1 for 与 in
      • 2.2 列表解析
    • 3索引,分片和矩阵
  • 三 列表方法调用
    • 1 append 方法
    • 2 sort方法
    • 3 extend方法
    • 4 pop、remove、del方法
      • 4.1 pop方法 删除列表中的元素
      • 4.2 remove方法 删除列表中的元素
      • 4.3 del 方法
    • 5 insert 方法
    • 6 index方法
    • 7 max函数
    • 8 列表的复制

前言:

此文为本人在学习python过程中,整理出来的学习笔记。主要参考书目有:
1、《python编程:从入门到实践》;
2、《python学习手册》;
3、《像计算机科学家一样思考Python》

一 列表简介

列表可以包含任何种类的对象:数字,字符串,列表及字典等。与字符串不同的是列表为‘可变序列’,支持在原处修改的操作。
python列表具有以下特性:

  1. 是任意对象的有序集合;
  2. 可通过偏移来对内部进行索引;
  3. 可变长度,异构以及任意嵌套;
  4. 属于可变序列的分类;
  5. 对象引用数组

二 列表基本操作

列表的常用操作:
python基础系列——列表知识点,函数及操作(持续更新中)_第1张图片

1 列表的创建

#可直接通过中括号的方式来创建一个列表
list1 = [1,2,3,4,5]
#也可利用list函数来将字符串转化为列表
strr = '1234'
list2 = list(strr)
print(list2)
#运行结果为:['1', '2', '3', '4']

#列表内元素个数
print(len(list1))
#运行结果为:5

列表的算数运算符操作:

list1 = [1,2,3,4,5]
list2 = [1,2,3]
list3= list1 + list2
print(list3)
#运行结果:[1, 2, 3, 4, 5, 1, 2, 3]
lst = ['hello']
print(lst * 4) # 列表中的元素累加,而不是列表个数的累加!
#运行结果:['hello', 'hello', 'hello', 'hello']

列表支持 + 及 * 运算但不支持 - 及 / 运算

2 列表迭代与解析

2.1 for 与 in

list1 = ['1', '2', '3', '4']
print('2' in list1) # in 返回布尔值 True or False
#运行结果为:True

for number in list1:
	print(number,end = ' ')
#运行结果为:1 2 3 4

2.2 列表解析

在后面将会以专门章节展开介绍,以下只做简单介绍:

repeat = [word * 4 for word in '你好啊']
print(repeat)
#运行结果为:['你你你你', '好好好好', '啊啊啊啊']

上述操作其实相等于创建了一个完整的for循环语句,代码为:

repeat = []  #先创建一个空列表
for word in '你好啊':
	repeat.append(word * 4) #append函数为在列表内增加元素
print(repeat)
#运行结果为:['你你你你', '好好好好', '啊啊啊啊']

3索引,分片和矩阵

列表与字符串都为有序序列,故在索引和分片(也叫切片)操作上与字符串索引,分片操作基本相同。

foods = ['鸡胸肉','鸭腿肉','猪肉','牛肉']
print(foods[0])  #与字符串一样第一个元素位数为0
#运行结果为:鸡胸肉

#其他切片操作可参考本系列博客的字符串学习内容
#注意列表中嵌套内容的索引
words = ['a','b',[1,2,3],'c']
print(words[2][0])
#运行结果:1

与字符串不同的是列表属于可变序列,可直接对其进行索引后赋值(不用像字符串需要借助利用变量才能进行更改操作)。如:

foods = ['鸡胸肉','鸭腿肉','猪肉','牛肉']
foods[1] = '鱼肉'
print(foods)
#运行结果为:['鸡胸肉', '鱼肉', '猪肉', '牛肉']

对列表的多个元素值进行改变:

numbers = [1,2,3,4,5,6]
numbers[0:2] = [7,8]
print(numbers)
#运行结果:[7, 8, 3, 4, 5, 6]

注意列表切片赋值:切片个数不一定要等于赋值个数,如下面代码所示:

matrix = [0,1,2,3,4,5]
matrix[0:2] = [6]
print(matrix)
#运行结果:[6, 2, 3, 4, 5]

列表切片赋值,可以理解为先对列表进行删除,然后在被删除位置上开始插入。

所以也可用切片的方法来删除列表中的元素:

matrix = [0,1,2,3,4,5]
matrix[0:2] = []
print(matrix)
#运行结果:[2, 3, 4, 5]

可以根据列表能进行嵌套的原理来形成简单的矩阵:

matrix = [[1,2,3],
		  [4,5,6],
		  [7,8,9]]
print(matrix[1][1])
#运行结果:5

三 列表方法调用

1 append 方法

append方法,用于在列表末尾增加元素:

matrix = [0,1,2,3,4,5]
matrix.append(6)
print(matrix)
#运行结果:[0, 1, 2, 3, 4, 5, 6]

append方法也常被用来新建列表:

matrix = []
for number in range(0,6):
	matrix.append(number)
print(matrix)
#运行结果:[0, 1, 2, 3, 4, 5]

2 sort方法

sort函数用来对列表进行简单的排序:

matrix = [5, 2, 6, 1, 3, 4]
matrix.sort()
print(matrix)
#运行结果:[1, 2, 3, 4, 5, 6]

注意list.sort()方法无返回值!!(严格的说返回值为 None)

以下是其错误用法,请注意:

matrix = [5, 2, 6, 1, 3, 4]
print(matrix.sort())
#运行结果为:None

也可对字符串等列表进行排序:

words = ['b', 'd', 'a', 'c', 'f', 'e']
words.sort()
print(words)
#运行结果:['a', 'b', 'c', 'd', 'e', 'f']

反向排序,利用内置参数 reverse = True 来实现:

words = ['b', 'd', 'a', 'c', 'f', 'e']
words.sort(reverse = True)
print(words)
#运行结果:['f', 'e', 'd', 'c', 'b', 'a']

3 extend方法

extend方法也是用来在列表末尾增加元素,但是要注意其与append用法的不同,append()方法括号内添加的可以是:数字,字符,变量,列表等,凡是extend()方法,添加的只能是列表,而且增加列表的方式也有所不同,如:

matrix = [0,1,2,3]
matrix.extend([4,5])
print(matrix)
#运行结果:[0, 1, 2, 3, 4, 5]

matrix = [0,1,2,3]
matrix.append([4,5])
print(matrix)
#运行结果:[0, 1, 2, 3, [4, 5]]

4 pop、remove、del方法

pop,remove,del方法都可以用来删除列表中的元素,但是三者各有各的功效:

4.1 pop方法 删除列表中的元素

matrix = [0,1,2,3,4,5,6]
matrix.pop()  #方法内部不传入参数,则默认删除最后一位
print(matrix)
#运行结果:[0, 1, 2, 3, 4, 5]

用来删除指定位元素:

matrix = [1,2,3,4,5,6]
matrix.pop(1)  #删除的是1位的元素!
print(matrix)
#运行结果:[1, 3, 4, 5, 6]

4.2 remove方法 删除列表中的元素

remove 方法则是用来删除指定元素,如:

matrix = [1,2,3,4,5,6]
matrix.remove(1)  #是删除1,而不是1位的元素,remove方法内必须传入参数
print(matrix)
#运行结果:[2, 3, 4, 5, 6]   #注意以上面代码结果的不同之处

remove方法无返回值

matrix = [1,2,3,4,5,6]
number = matrix.remove(1)
print(number)
#运行结果:None

pop方法有返回值

matrix = [1,2,3,4,5,6]
number = matrix.pop(1)
print(number)
#运行结果:2

从上述实验中可发现,pop与remove方法的不同之处有:
pop方法删除列表特定位的元素(不输入,则默认删除最后一位)
remove方法删除列表中特定元素
pop方法有返回值(之后可再次调用),remove无返回值

4.3 del 方法

matrix = [1,2,3,4,5,6]
del matrix[0]
print(matrix)
#运行结果:[2, 3, 4, 5, 6]

也可用来删除列表内多个元素:

matrix = [1,2,3,4,5,6]
del matrix[0:3]
print(matrix)
#运行结果:[4, 5, 6]

5 insert 方法

在列表中插入元素:

matrix = [1,2,3,4,5,6]
matrix.insert(0,7)  #0为插入点,7为插入值
print(matrix)
#运行结果:[7, 1, 2, 3, 4, 5, 6]

6 index方法

index方法为获取列表中元素的位置:

matrix = [1,2,3,4,5,6]
print(matrix.index(4))
#运行结果:3

7 max函数

max函数可用来对列表取最大值操作,如:

matrix = [1,2,3,4,5,6]
print(max(matrix))
#运行结果为:6

8 列表的复制

matrix = [1,2,3,4,5,6]
matrix_2 = matrix[:]
print(matrix_2)
#运行结果:[1, 2, 3, 4, 5, 6]

不要用下面这种方式来尝试复制列表:

matrix = [1,2,3,4,5,6]
matrix_3 = matrix  #此种方式相当于将matrix和matrix_3两个变量指向了同一个列表,而不是复制该列表。
matrix.pop()  #即如对该列表进行操作时,matrix_3也会改变
print(matrix_3)
#运行结果:[1, 2, 3, 4, 5]  

你可能感兴趣的:(python,基础,python,列表,列表函数方法,初学者)