python练习生|列表的这些基本用法你都会吗?
一.序列
1).什么是序列
- 概念: 序列是Python中一种数据存储方式,是一种与存储相关的数据结构。
- 作用: 序列⽤于保存⼀组数据,所有的数据在序列当中都有⼀个“专有地址”,通过索引这个专有地址来将数据进行呈现。
- 特点: 序列是有序性的,序列中的每一个元素都有相应的索引值。
2).序列的分类
- 分类: 我们按照序列中元素中的可变性可将序列分为:可变序列与不可变序列。
- 可变序列: 如 列表(list)、字典(dict)
- 不可变序列: 如 字符串(str)、元组(tuple)
在初步了解了什么是序列后,我将针对序列中的列表(list)进行一个深入讲解
二.列表
1).初识列表
1.列表的概念
- 列表是Python中的⼀个对象,它是最常用的Python数据展现方式。
2.列表的作用
列表的作⽤ |
---|
列表中可以保存多个有序的数据 |
列表是⽤来存储对象的对象 |
2).列表的应用
1.创建列表
- 列表的创建:通过 [] 来创建⼀个空列表
- 列表可以保持任意的对象
例如:
lst = ['我','+','们',['都爱'],'python']
print(lst)
- 从图我们可以看出输出的列表跟输入的格式保持一致,无论是字符串,列表,列表都能够“包含”,足以见得列表的强大。
2.索引(index)
- 我们可以对列表进行索引来获取任意的元素
- 索引默认从0开始
之前在讲数据类型这篇文章中有提及索引的相关内容:
3)字符串的使用
lst = ['一号','二号','三号',4,5]
print(lst)
print(lst[2])
我么可以看出,lst[2] 中的2相当于是列表lst的索引值
- 那么又有新的问题产生了,索引值可以任意填写吗?
下面我们看个例子:
lst = ['一号','二号','三号',4,5]
print(lst)
print(lst[2])
print(len(lst))
通过使用len()函数来获取列表长度
如果你忘了,那么不要怕(5).字符串的其他操作,这个表介绍了一些基本的字符串操作方法。
- 负向索引:
lst = ['一号'+'二号','三号',4,5]
print(lst)
print(lst[-1])
- 为了更直观,我们将列表 lst = [‘一号’,‘二号’,‘三号’,4,5] 做成图片,供大家深入理解。
3.切片
(1).切片的概念
- 通过切⽚来获取指定的元素(通俗来讲,切片就是把刀,被切的列表相当于火腿肠,我们通过到对火腿肠进行规范化分割,获取其中的一段,或者多个片段,这一个或多个片段就相当于从现有列表中获得⼀个⼦列表)
(2).切片的语法
- 语法: 列表[起始 : 结束 : 步⻓]
(3).切片的应用
- 通过切⽚获取元素时,会包含起始位置的元素(索引值是起始位)=,不会包括结束位置的元素
例如:
lst = ['一号','二号','三号',4,5]
print(lst)
print(lst[0:2])
- 起始位置和结束位置的索引都不写,则会从第⼀个元素开始截取到最后⼀个元素。
lst = ['一号','二号','三号',4,5]
print(lst)
print(lst[:])
- 如果省略结束位置, 则会从当前的开始位置⼀直截取到最后;如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结束的元素
lst = ['一号','二号','三号',4,5]
print(lst)
print(lst[1:]) #省略结尾
print(lst[:3]) #省略开头
- 步⻓表示每次获取元素的间隔,默认是1(可以省略不写)
lst = ['一号','二号','三号','意大利炮',4,5,'六号',7,8,9,'团长']
print(lst)
print(lst[0:3:1])
print(lst[0:3])
lst = ['一号','二号','三号','意大利炮',4,5,'六号',7,8,9,'团长']
print(lst)
print(lst[0:6:2])
print(lst[1::2])
- 步⻓不能是0,但可以是是负数
lst = ['一号','二号','三号','意大利炮',4,5,'六号',7,8,9,'团长']
print(lst)
print(lst[0:6:2])
print(lst[::-2])
print(lst[::0])
4.列表的通用操作
- 前面已经说过了列表的索引和切片操作,下面在进行其他操作的扩充。(其实你在认知的时候当成序列的通用操作也不为过)
- 加(+) 和乘()
加(+)可以将两个列表拼接成⼀个列表
乘()可以将列表重复指定的次数
lst1 = ['一号','二号','三号','意大利炮']
lst2 = [4,5,'六号',7,8,9,'团长']
lst = lst1+lst2
print(lst)
lst3 = lst2*2
print(lst3)
注意2个列表不能够做乘法,要和整数做乘法运算
lst1 = ['一号','二号','三号','意大利炮']
lst2 = [4,5,'六号',7,8,9,'团长']
lst = lst1+lst2
print(lst)
lst3 = lst2*lst1
print(lst3)
- in 和 not in
in⽤来检查指定元素是否在列表当中
not in ⽤来检查指定元素是否不在列表当中
lst = ['一号','二号','三号','意大利炮',4,5]
print('一号' in lst)
print('十号' not in lst)
- len() 获取列表中元素的个数
- max() 获取列表中最⼤值
- min() 获取列表中最⼩值
- list.index(x[, start[, end]])
第⼀个参数 获取指定元素在列表中的位置
第⼆个参数 表示查找的起始位置
第三个参数 表示查找的结束位置
- 当列表中有多个重复字符串或数值时,
如果没有限定条件,则返回第一次出现该字符串的索引位置;
如果有限定条件,则返回限定条件内第一次出现该元素的索引位置
list.count(x) 统计指定元素在列表中出现的个数
举个栗子:
lst = ['一号','二号','三号','意大利炮','团长','二号','三号']
print(lst.count('意大利炮'))
print(lst.count('二号'))
详情请移步:python官网:序列-列表的通用操作
ps:我承认我偷懒了,后面补一个表出来
5.列表的修改
(1).添加元素
- lst.insert() :
lst.insert(i,x) :在索引i处将x插入lst列表中
lst[i:i] = [x] 与insert(i,x)作用相同
lst = ['一号','二号','三号','意大利炮','团长']
lst.insert(3,'秀琴')
print(lst)
lst[0:0] = ['秀琴']
print(lst)
- append():向列表的末尾添加⼀个元素
- extend():使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递⼀个序列,可以一次添加多个元素,不过也只能添加在列表的最后
lst = ['一号','二号','三号','意大利炮','团长']
lst.append('秀琴')
print(lst)
lst.extend(['开炮'])
print(lst)
(2).删除元素
- lst.remove():移除lst列表中的元素
lst.remove(x):移除lst列表中的元素x - del():删除列表中的元素
del(lst[x]) 删除列表lst里面的索引号位置为x的元素,这里需要注意的是del是一种操作语句,删除的元素无法返回 - lst.pop():根据索引删除并返回指定元素
lst,pop()默认删除最后一位
lst.pop(x)删除索引数x所对应的元素
lst = ['一号','二号','三号','意大利炮','团长']
lst.remove('一号')
print(lst)
del lst[3]
print(lst)
lst.pop(2)
print(lst)
- 值得一提的是使用pop()方法删除元素,删除的元素具有返回值
lst = ['一号','二号','三号','意大利炮','团长']
result = lst.pop()
print(result)
print(lst)
(3).替换元素
lst[x]=‘abc’
通过索引进行元素的替换
lst[M:N]=‘abc’
通过切片M为起始索引,N为终止索引。进行元素的替换
lst = ['一号','二号','三号','意大利炮','团长']
lst[1] = '顺溜'
print(lst)
lst[0:3]='拉'
print(lst)
引用官网截图
详情转至:python官网Sequence Types — list, tuple, range链接
引用结束
3).列表的遍历
1.for循环
- 通过for循环来遍历列表
是不是似曾相识?我在上一篇讲过for循环的一些基本用法for循环语句 - 语法规则还是要再说一下
for 变量 in 遍历条件:
代码块
- 对于列表,for循环的代码块会执⾏多次。每执⾏⼀次就会将列表中的⼀个元素赋值给变量,所以我们可以通过变量来获取列表中的元素,从而实现列表的遍历
举个栗子:
lst =['二营长','的','意大利炮','给我','拉过来']
i = 0
while i < len(lst):
print(lst[i])
i += 1
lst =['二营长','的','意大利炮','给我','拉过来']
for j in lst:
print(j)
- 有人问我,为什么把while也贴上去了,嘿嘿,为了突出for循环遍历列表更方便些呀。
2.range()函数
(1).关于range()函数
- range函数是一个用来创建数的序列的一种通用函数
- range函数大多数用于for循环中
range函数的语法:range(start, stop[, step])
- 开始(start): ,默认是0,可省略
range(0,4)与range(4)表达的是同一个东西 - 结束(stop): 不包含结束
举个栗子:
for i in range(4):
print(i)
- 步长(step): 步长值默认是1
range(4)、range(0,4)、range(0,4,1)这三个表达的是同一个东西
(2).range()函数的应用
举个栗子:
lst =[1,'二营长',2,'的',3,'意大利炮',4,'给我',5,'拉过来']
for j in range(1,10,2):
print(lst[j])