Python的学习-4-列表及其常见操作

列表

列表是一种数据存储方式,用于存储一系列的数据。在内存中,列表就是一块用来存放多个值的连续的内存空间。(相当于数组,但是列表在保存的数据类型上并不严格限制)
在这里插入图片描述

列表对象的常用方法

在这里插入图片描述
在这里插入图片描述

列表的创建

基本语法创建

语法格式:

a = [10,20,'rain','rean']
a = []#创建空列表

list()创建

使用list()可以将任何可迭代的数据转化成列表
语法格式:

a = list()#创建空列表对象
a = list("****",****)

range()创建整数列表

range()函数的参数详解:

#range(start,end,step)
#start:开始下标
#ned:结束下标
#step:可选,步长默认为1

range()函数返回的是一个对象。

推导式

a = [x*2 for x in range(5)]
print(a)
#[0,2,4,6,8]

a = [x*2 for x in range(100) if x%9 == 0]
print(a)
#[0,18,36,54,72,90,108,126,144,162,180,198]

列表元素的增加和删除

列表元素增加

append()方法

append()方法可以原地修改列表对象,速度最快,推荐多使用。

a = []
a.append(10)
print(10)
#[10]

“+” 运算符

不是原地修改,二十创建新的列表对象,将源列表的元素和新列表的元素依次复制到新的列表对象中,会涉及大量的复制操作,操作大量元素时不推荐使用。

a=[]
print(id(a))
a=a+[50]
print(a)
print(id(a))
#[50]

extend()方法

将目标列表的所有元素添加到本列表的尾部,属于原地操作,对比append(),append()对单个元素进行操作,extend()对多个元素进行操作。

a=[]
print(id(a))
a.extend([50,60])
print(id(a))
print(a)

insrt()插入元素

一般用于将指定元素插入到列表对象的任意指定位置,会使所有源列表中位于插入位置之后的元素后移一个位置,是涉及大量元素操作的方法。相似的移动方法还有:remove(),pop(),del()

a=[10,20,30]
a.insert(2,100)
print(a)
#[10,20,100,30]

乘法扩展

使用乘法扩展列表,生成一个新列表,新列表元素是源列表的多次重复。

a=['rain',10]
b=a*2
print(b)
#['rain',10,'rain',10] 

列表元素删除

del删除

删除列表指定位置的元素

a=[10,20,30]
del a[0]
print(a)
#[20,30]

pop()方法

pop()删除并返回指定位置元素,如果未指定位置则默认返回列表最后一个位置的元素

a = [10,20,30,40,50]
print(a.pop())
#[50]
print(a)
#[10,20,30,40]

remove()方法

删除首次出现的指定元素,元素不存在则抛出异常

a = [10,20,30,40,50,60,10,20,30]
a.remove(20)
print()

列表元素的访问和计数

通过索引直接访问元素

a = [10,20,30,40]
print(a[0])

index()获得指定元素在列表中首次出现的索引

index(value,start,end)的参数:
value——我们指定的元素
start——搜索范围的开始下标
end——搜索范围的结束下标

a = [10,20,30,40]
print(a.index(20))

count()获得指定元素在列表中的出现次数

a = [10,20,30,40]
print(a.count(20))

len()返回列表长度

len()返回列表长度

a = [10,20,30,40]
print(len(a))

成员资格判断

如果count()返回0,则元素不存在。
还可以用in关键字,也就是成员运算符判断。

切片操作

字符串的切片操作几乎可以运用于列表。
在这里插入图片描述
在这里插入图片描述

列表排序

修改原列表,不建新列表的排序。

一般可以使用常用的sort()方法。sort()方法是永久性修改

a = [10,20,30,40]
print(id(a))
print(a.sort())#默认升序
print(id(a))
print(a.sort(reverse = True))#降序

import random
random.shuffle(a)#随机排序

建立新列表的排序

内置函数sorted()进行排序

和sort()相比,sorted()函数的排序是临时的,也就是不会对原始列表做出改变,而sort()是永久性的,即会对原始列表做出修改。

a = [10,20,30,40]
print(id(a))
print(a= sorted(a))#默认升序
print(id(a))
print(a = sorted(a,reverse = True))#降序
print(id(a))

reversed()返回迭代器

内置函数reversed()也支持逆序排列,与reverse()方法不同的是,reversed()不对源列表做修改,返回一个逆序排序的迭代器对象。

a = [20,10,30,40]
c = reversed(a)
print(c)#和print(a[::-1])的效果一样
#[40,30,10,20]
print(list(c))#迭代器只能使用一次,使用一次过后,会变空

其他一些常用方法

max(),min(),sum()

max(var)返回最大值
min(var)返回最小值
sum(var)返回所有元素的求和

多维列表

二维列表

二维数组如何理解?可以把二维列表看作一个大的列表,和多个小列表组成。如下列:

a=[
	[1,2,3,4],
	[10,20,30,40],
	['a','b','c','d','e']#多维列表的维度可以不一致。
]

内存结构图:
在这里插入图片描述


版权声明:本文为weixin_43389063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。