前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python列表(list)的相关操作及方法

Python列表(list)的相关操作及方法

作者头像
用户7886150
修改2021-01-26 10:30:40
1.3K0
修改2021-01-26 10:30:40
举报
文章被收录于专栏:bit哲学院

参考链接: Python列表list reverse()

Python列表(list)的相关操作及方法 

一、list列表 

1.概述: 

 本质:list列表的本质是一种有序的集合 

2.创建列表 

 语法: 列表名 = [元素1,元素2,元素3…] 

 说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数 

使用:创建列表 

#创建空列表

list1 = []

list1 = list()#格式化

#创建带有元素的列表

list2 = [10, 20, 30, 10]

print(list2)

#结果

[10, 20, 30, 10]

注意:在列表中元素的数据类型可以不同(灵活性)表中的元素类型可以是任意python中的基本数据类型或者是自定义的数据类型 

list3 = [33, "good", True, 10.32]

print(list3)

#结果

[33, 'good', True, 10.32]

3.列表元素的访问 

3.1 列表的取值 

 功能:访问list列表中元素值 

 语法:列表名[索引] 

 list1[index] index取值范围[0,len(list1)) 

 len(list)表示列表的长度 

list4 = [22, 33, 12, 32, 45]

#下标从0开始,最大值为len(list4)-1

print(list4[0])

注意:当索引值大于len(list4)-1的时候,会出现以下错误: 

print(list4[5])

IndexError: list index out of range

这个错误就是下标越界【下标超出了可表示的范围】 

3.2 列表元素的替换 

 功能:更改列表元素的值 

 语法:列表名[下标] = 值 

 list1[index] = 值 

list4 = [22, 33, 12, 32, 45]

list4[0] = "hello"

print(list4[0])

4.列表操作 

4.1 列表组合 

 语法: 列表3 = 列表1 + 列表2 

 将列表1和列表2中的元素取出,组成一个新的列表并返回。 

list1 = [1, 2, 3]

list2 = ['hello', 'yes', 'no']

list3 = list1 + list2

print(list3)

#结果

[1, 2, 3, 'hello', 'yes', 'no']

4.2 列表重复 

 语法: 列表2 = 列表1 * n 

list1 = [1, 2, 3]

list2 = list1 * 3

print(list2)

#结果

[1, 2, 3, 1, 2, 3, 1, 2, 3]

4.3 判断元素是否在列表中 

 语法:元素 in 列表 

 若存在则返回True,否则返回False 

list1 = [1, 2, 3]

print(1 in list1)

#结果

True

4.4 列表截取 

 语法:list1[start:stop:step] 

 参数一:表示截取的开始下标值,默认为0 

 参数二:表示截取的结束下标值,默认为列表末尾 

 参数三:表示截取的步长,默认为1,可指定 

 注意:1.截取区间[start, end),左闭右开 

 2.list1[::-1]可以获得倒叙的列表 

list1 = ["hello",2,True,False,3.14]

list2 = list1[:]

list3 = list1

print(list1[0:3:2])

print(list1[::-1])

print(list1[:3:-1])

print(list1[3::-1])

#结果

['hello', True]

[3.14, False, True, 2, 'hello']

[3.14]

[False, True, 2, 'hello']

4.5 二维列表 

 语法:列表 =[列表1,列表2,列表3,… ,列表n] 

 列表中元素可以是Python的基本数据类型,也可以是自定义的数据类型。 当列表中存放的元素刚好又是列表的时候,我们可以称这个列表为二维列表 

#创建二维列表,即列表中的元素还是列表

list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]

二维列表取值(访问) 

 语法:列表名【下标1][下标2] 

 注意:下标1代表第n个列表(下标从0开始),下标2代表第n个列表中的第n个元素 

list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]

print(list1[0][0])

5.列表的方法 

5.1 list.append(元素/列表) 

 功能:在列表中末尾添加新的元素【在原本的列表中追加元素】 

 注意:append()中的值可以是列表也可以是普通元素 

>>> list1 = [3, 4, 6]

>>> list1.append(6)

>>> print(list1)

[3, 4, 6, 6]

5.2 list.extend(列表) 

 功能:在列表的末尾一次性追加另外一个列表中的多个值 

 注意:extend()中的值只能是列表/元组[一个可迭代对象(可加在for循环之后的)],打碎可迭代对象之后的元素再加入列表中,不能是元素 

>>> list1 = [1,2,3]

>>> list2 = [3, 4,5]

>>> list1.extend(list2)

>>> print(list1)

[1, 2, 3, 3, 4, 5]

5.3 list.insert(下标值, 元素/列表) 

 功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延 

 注意:插入的数据可以是元素也可以为列表 

>>> list1 = [1,2,3]

>>> list1.insert(1,0)

>>> print(list1)

[1, 0, 2, 3]

>>> list1.insert(1,[2, 4, 8])

>>> print(list1)

[1, [2, 4, 8], 0, 2, 3]

5.4 list.pop(下标值) 

 功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据 

 注意此处会返回删除数据 

>>> list1 = [1, [2, 4, 8], 0, 2, 3]

>>> list1.pop()

3

>>> print(list1)

[1, [2, 4, 8], 0, 2]

>>> list1.pop(2)

0

>>> print(list1)

[1, [2, 4, 8], 2]

5.5 list.remove(元素) 

 功能:移除列表中的某个元素第一个匹配结果 

>>> list1 = [1, 2, 3]

>>> list1.remove(2)

>>> print(list1)

[1, 3]

5.6 list.clear() 

 功能:清除列表中所有的数据 

>>> list1 = [1, 2, 3]

>>> list1.clear()

>>> print(list1)

[]

5.7 list.index(object[, start】[, stop]) 

 功能:从指定的范围的列表中找出某个值(object)第一匹配的索引值 

 查询范围[start,stop),若不指定范围,则默认是整个列表。 

>>> list1 = [1, 2, 3]

>>> list1.index(2)

1

>>> list1.index(4)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: 4 is not in list

注意:若在列表中找不到这个元素,则会报错。 

5.8 list.count(元素) 

 功能:查看元素在列表中出现的次数 

>>> list1 = [1, 2, 3, 1]

>>> list1.count(1)

2

5.9 len(list) 

 功能: 获取元素列表个数(长度) 

>>> list1 = [1, 2, 3, 1]

>>> len(list1)

4

5.10 max(list) 

 功能:获取列表中的最大值 

>>> list1 = [1, 2, 3, 1]

>>> max(list1)

3

5.11 min(list) 

 功能:获取列表中的最小值 

>>> list1 = [1, 2, 3, 1]

>>> min(list1)

1

注意:比较的是ASCII值 

5.12 list.reverse() 

 功能: 将列表中的元素倒叙,在原列表进行操作,不返回新的列表。 

list1 = ["hello1","good1","nice","good","hello"]

print(id(list1))

list1.reverse()

print(list1)

print(list1.reverse())

print(id(list1))

#结果

2158912823880

['hello', 'good', 'nice', 'good1', 'hello1']

None

2158912823880

5.13 list.sort() 

list1.sort(reverse=False) 

 功能:将list1中的元素进行升序排列【默认reverse=False】当reverse为True的时候,降序排列。 

 在原列表进行排序 

>>> list1 = [1, 2, 3, 1]

>>> list1.sort()

>>> print(list1)

[1, 1, 2, 3]

5.14 赋值拷贝 

 语法:list1 = [1, 2, 3] 

     list2 = list1

 特点:共用同一块内存空间,更改其中任意一个变量,其他变量都会受到影响。 

list1 = [1,2,3,4,[1,2,3,4]]

list2 = list1

print(id(list1))

print(id(list2))

list2[-1] = True

print(list2)

print(list1)

#结果

1585735384392

1585735384392

[1, 2, 3, 4, True]

[1, 2, 3, 4, True]

注意:赋值拷贝为引用拷贝,类似于快捷方式 

5.15 浅拷贝 

 语法:list1 = [1, 2, 3] 

     list2 = list1.copy()

 注意:只适用于一维列表;浅拷贝为一维内存拷贝,开辟了新的内存空间 

 不完全内存拷贝,对于一维列表重新开辟了一块内存空间,但若出现二维列表的情况下,因为二维列表存放在一维列表中存放的是列表的地址,因此,若出现二维列表相当于间接的引用了同一块内存区域(即二维列表还是共用内存)。 

>>> list1 = [1, 2, 3, 1]

>>> list2 = list1.copy()

>>> print(list2)

[1, 2, 3, 1]

>>> print(id(list2))

4314525320

>>> print(id(list1))

4314524808

import copy

list1 = [1,2,3,4,[1,2,3,4]]

list3 = list1.copy()

list3[-1][-1] = True

print(id(list1))

print(id(list3))

print(list1)

print(list3)

#结果

#一维存储地址不同

1614254026312

1614254024904

#二维存储地址相同,伴随发生改变

[1, 2, 3, 4, [1, 2, 3, True]]

[1, 2, 3, 4, [1, 2, 3, True]]

5.16 深拷贝 

impo copy 

list2 = copy.deepcopy(list1) 

完全内存拷贝,相当于将list1中的所有列表元素重新复制了一份,对于多维的也重新开辟了新的内存空间 

list1 = [1,2,3,4,[1,2,3,4]]

list4 = copy.deepcopy(list1)

list4[-1][-1] ="hello"

print(id(list1))

print(id(list4))

print(list1)

print(list4)

#结果

#一维存储地址不同

2215608102408

2215608101128

#二维存储地址不同,不伴随发生改变

[1, 2, 3, 4, [1, 2, 3, 4]]

[1, 2, 3, 4, [1, 2, 3, 'hello']]

5.17 list(元组) 

 功能:将元组转为列表 

>>> list1 = list((1, 2, 3, 4))

>>> print(list1)

[1, 2, 3, 4]

6.列表的遍历 

6.1 使用for循环遍历列表 

 语法: 

 for 变量名 in 列表 : 

 ​ 语句 

 功能:for循环主要用于遍历列表 

 遍历:指的是依次访问列表中的每一个元素,获取每个下标对应的元素值 

说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止 

>>> list1 = ['hello', 78, '你好', 'good']

>>> for item in list1:

...     print(item)

... 

hello

78

你好

good

6.2 使用while循环遍历列表[使用下标循环] 

 语法: 

 下标 = 0 

 while 下标 < 列表的长度: 

 ​ 语句 

 ​ 下标 += 1 

6.3 同时遍历下标与元素 

 语法: 

 for 下标,变量 in enumerate(列表) 

 语句

>>> list1 = ['hello', 78, '你好', 'good']

>>> for index,item in enumerate(list1):

...     print(index, item)

... 

0 hello

1 78

2 你好

3 good

enumerate()[枚举]函数用于一个可遍历的数据对象(如列表,元组或者字符串)组合为一个索引序列,同时列出数据与数据下标,一般使用在for循环中

enumerate(obj, [start =0])

obj:一个可迭代对象

start:下标起始位置

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档