python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作

目录

一、列表的定义

二、列表的创建

(1)直接创建

 (2)用lst()创建

(3) 关于range()创建列表的使用。

(4)列表的特点

三、列表元素的增加

(1)append     列表末尾添加一个元素

(2) 运算符的操作列表

(1)    +法

(2)*法

(3)extend     列表末尾至少添加一个元素

(4)insert()任意添加一个元素到任意位置

四、列表元素的删除

(1)remove()函数

(1)一次删除一个元素 

(2)一个列表里面有重复的元素则删除第一个元素

(3) 元素不存在则ValueError

 (2)pop()函数

(1)删除指定索引上的元素

(2) 不存在,则抛出IndexError

 (3)不指定,则删除列表最后一个元素

(3) clear     请空列表

(4)del     删除列表

(1)直接删除整个列表

​编辑 (2)删除列表当中的元素

 五、列表的查询

(1)直接查询

(2)index() 获取列表的索引

 (1)有无数个相同的元素,则返回第一个元素的索引

 (2)不存在的话,则抛出ValueError

(3) 存在的查找

(3) count()  获取元素在列表出现几次

(4)len()   获取列表的长度

  六、列表的修改

  七、列表的排列

(1)sort()函数,升序排列

(2)sort(reverse=True)函数,降序排列 

(3) 内置函数sorted()对列表正序排序,但是会产生一个新列表

 (3) 内置函数sorted(reverse=True)对列表逆序排序,但是会产生一个新列表

 

  八、元素是否在列表里面的判断

  九、切片操作


一、列表的定义

列表:用于存储任意数目、任意类型的数据集合。

  • *列表是内置可变序列,是包含多个元素的有序连续的内存空间。

列表定义的标准语法格式:

a = [10,20,30,40] 

其中,10,20,30,40这些称为:列表a的元素。

列表中的元素可以各不相同,可以是任意类型。

比如:a = [10,20,'abc',"i","love,""you"]


  • Python的列表大小可变,根据需要随时增加或缩小。
  •  字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列。

二、列表的创建

在这儿有俩种方法

(1)直接创建

a=["i","love","you",20,80]         #这就创建好了一个新列表

print(a)

 (2)用lst()创建

使用list()可以将任何可迭代的数据转化成列表。

a = list()  #创建一个空的列表对象

a = list(range(10))

print(a)

》》》[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

第二种表示的方法

 a = list("xiao li")

print(a) 

》》》['x', 'i', 'a', 'o', ' ', 'l', 'i']

(3) 关于range()创建列表的使用。

在之前我们单独写过range()函数的基本的一些看这篇文章

python的基础知识梳理——选择结构与range函数_学python的小李的博客-CSDN博客

关于列表的,我们现在来展现一下:

语法格式为:

range([start,] end [,step])

start参数:可选,表示起始数字。默认是0

end参数:必选,表示结尾数字。

step参数:可选,表示步长,默认为1

range()返回的是一个range对象,而不是列表。

使用在这我们就需要通过list()方法将其转换成列表对象。

三种实际的写法

#第一种从3开始不包括15,步长为2 

lst=list(range(3,15,2))
print(lst)

>>>[3, 5, 7, 9, 11, 13]

#第二种 从15开始,到4结束,注意这儿步长是负数,负数的步长表示的是逆序输出,步长是1


lst2=list(range(15,3,-1))
print(lst2)

>>>[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]


#第三种 从3开始,到9结束,注意这儿步长也是负的,负数的步长表示的还是逆序输出,步长为1

lst3=list(range(3,-10,-1))
print(lst3)

>>>[3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

(4)列表的特点

  • 列表元素安顺序进行有序排列
  • 索引号映射的是唯一 的数据
  • 列表里面可以有重复的数据
  • 各种类型可以混合存入
  • 列表需要的是动态分配和回收内存

三、列表元素的增加

(1)append     列表末尾添加一个元素

原地修改列表对象,是真正的列表尾部添加新的元素,速度特别快,这是最常见的一种添加到列表元素的方式。

a = [20,40]

 a.append(80)

 print(a)

输出的 结果就是   [20, 40, 80]

还有一种写法就是添加的是另外一个列表的话,它是列表包括着列表而不是把一个列表中的元素复制到另一个列表里面

a=[20,40]

b=[50,60]

a.append(b)

print(a)

输出的结果就是[20,40,[50,60]]    是这样的 

(2) 运算符的操作列表

(1)    +法

+法并不是真正的尾部添加元素,而是去创建新的列表对象;

它将原列表的元素和新列表的元素依次复制到新的列表对象中。

我个人不建议去这样用,这样会涉及大量的复制操作,对于操作大量元素不建议使用。

a=[60,70]

a=a+[30]

print(a)

输出的结果就是[60,70,30]

(2)*法

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

 a=[60,70]

a=a*3

print(a)

最后的结果是[60,70,60,70,60,70]

(3)extend     列表末尾至少添加一个元素

a=[20,40]

a.extend([30,50])

print(a)

最后输出的结果 是[20,40,30,50]

第二种还可以自己把另外一个序列的元素添加到这个序列里面里面去

a=[20,40]
b=[50,60]

a.extend(b)

print(a)

最后的结果就是[20,40,50,60]

这个是和append函数不一样的 ,或者添加序列,而前者添加元素

(4)insert()任意添加一个元素到任意位置

使用insert()方法可以将指定的元素插入到列表对象的任意制定位置。

这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。这些函数我们后面去讲

a=[20,40,60,80,70]

a.insert(2,100)

print(a)

最后的结果就是[20,40,60,100,80,70]
 

四、列表元素的删除

(1)remove()函数

  • 一次删除一个元素
  • 一个列表里面有重复的元素则删除第一个元素
  • 元素不存在则ValueError

(1)一次删除一个元素 

a=[20,40,60,80,70]

a.remove(20)

print(a)

最后的结果就是[40,60,80,70]

(2)一个列表里面有重复的元素则删除第一个元素

a=[20,40,60,80,70,80]

a.remove(80)

print(a)

最后的结果就是[20,40,60,70,80]

(3) 元素不存在则ValueError

a=[20,40,60,80,70,80]

a.remove(410)

print(a)

结果为:

python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作_第1张图片

 (2)pop()函数

  • 删除指定索引上的元素
  • 不存在,则抛出IndexError
  • 不指定,则删除列表最后一个元素

(1)删除指定索引上的元素

a=[20,60,50,80,70,80]
a.pop(2)

print(a)

结果为[20,60,80,70,80]

(2) 不存在,则抛出IndexError

a=[20,60,50,80,70,80]

a.pop(6)


print(a)

结果如下:

python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作_第2张图片 

 (3)不指定,则删除列表最后一个元素

a=[20,60,50,80,70,80]
a.pop()

print(a)

结果为[20,60,50,80,70]

(3) clear     请空列表

a=[20,60,50,80,70,80]
a.clear()

print(a)

结果如下:[ ]

(4)del     删除列表

(1)直接删除整个列表

a=[20,60,50,80,70,80]
del(a)

print(a)

结果为: 

python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作_第3张图片 (2)删除列表当中的元素

a=[20,60,50,80,70,80]

del a[1]
print(a)

 结果如下:python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作_第4张图片

 五、列表的查询

(1)直接查询

a=[20,60,50,80,70,80]

print(a[2])

结果是:[50]

(2)index() 获取列表的索引

(1)有无数个相同的元素,则返回第一个元素的索引

(2)不存在的话,则抛出ValueError

语法是:index(value,[start,[end]])。

其中,start和end指定了搜索的范围。

 (1)有无数个相同的元素,则返回第一个元素的索引

a=[20,60,50,80,70,80]

print(a.index(80))

结果为:3

 (2)不存在的话,则抛出ValueError

 

a=[20,60,50,80,70,80]

print(a.index(80,0,2))

python的基础知识梳理——列表的创、增、删、查、改、排,与切片操作_第5张图片

(3) 存在的查找

a=[20,60,50,80,70,80]

print(a.index(80,0,5))

结果是:3

(3) count()  获取元素在列表出现几次

a=[20,60,50,80,70,80]

print(a.count(80))

结果为:2

(4)len()   获取列表的长度

a=[20,60,50,80,70,80]

print(len(a))

结果为:6

  六、列表的修改

#一次修改一个值

a=[20,60,80,70,80]

a[2]=100

print(a)

结果是:[20,60,100,70,80]

#一次修改多个值

a=[20,60,80,70,80]

a[1:3]=[100,200,300]

print(a)

结果是:[20, 100, 200, 300, 70, 80]

  七、列表的排列

(1)sort()函数,升序排列

a=[80,52,3,80,460,158,123]

a.sort()

print(a)

结果为:[3, 52, 80, 80, 123, 158, 460]

(2)sort(reverse=True)函数,降序排列 

a=[80,52,3,80,460,158,123]

a.sort(reverse=True)

print(a)

结果为:[460, 158, 123, 80, 80, 52, 3]

(3) 内置函数sorted()对列表正序排序,但是会产生一个新列表

a=[80,52,3,80,460,158,123]

new_a=sorted(a)

print(new_a)

结果为:[3, 52, 80, 80, 123, 158, 460]

 (3) 内置函数sorted(reverse=True)对列表逆序排序,但是会产生一个新列表

a=[80,52,3,80,460,158,123]

new_a=sorted(a,reverse=True)

print(new_a)

结果为:[460, 158, 123, 80, 80, 52, 3]

 

  八、元素是否在列表里面的判断

判断列表中是否存在指定的元素,一般我们会使用简洁的in关键字来判断,直接返回True或False。

a=[80,52,3,80,460,158,123]

print(80 in a)

结果为:True

  九、切片操作

切片的格式如下:

切片slice操作可以让我们快速提取子列表或修改。

标准格式为:

[起始偏移量start:终止偏移量end[:步长step]]

注:当步长省略时顺便可以省略第二个冒号

 方法:

操作和说明

示例

结果

[:]   提取整个列表

[10,20,30][:]

[10,20,30]

[start:]从start索引开始到结尾

[10,20,30][1:]

[20,30]

[:end]从头开始知道end-1

[10,20,30][:2]

[10,20]

[start:end]从start到end-1

[10,20,30,40][1:3]

[20,30]

[start:end:step]从start提取到end-1,步长是step

[10,20,30,40,50,60,70][1:6:2]

[20, 40, 60]

其他操作(三个量为负数)的情况:

示例

说明

结果

[10,20,30,40,50,60,70][-3:]

倒数三个

[50,60,70]

10,20,30,40,50,60,70][-5:-3]

倒数第五个到倒数第三个(包头不包尾)

[30,40]

[10,20,30,40,50,60,70][::-1]

步长为负,从右到左反向提取

[70, 60, 50, 40, 30, 20, 10]

原创不易,读者大大发财的小手点点赞!!!!!

你可能感兴趣的:(python基础知识,python,开发语言)