Python中关于列表(list)的基本操作
1.列表的定义
- 列表的概念:有序的可变的元素集合
列表就相当于C/C++中的数组,不过列表中的元素可以是任意数据类型
#定义空列表
a=[]
b=list()
#定义普通列表(任意数据类型都可以)
c=[1, 2, 3.5, "asdfa", True]
2.列表的访问与切片
(1)访问
- 访问格式:列表名称[索引]
支持负索引
(1.1)普通索引
c[0]
c[2]
输出结果为:
2
3.5
(1.2)负索引(最后一位元素索引为-1,倒数第二位元素索引为-2,以此类推…)
c[-1]
c[-3]
c[-5]
输出结果为:
True
3.5
1
(2)切片
- 切片概念:通过列表切片去访问列表中的某一个片段的元素集合
- 切片格式:列表名称[start:stop:step]
start:起始索引
stop:结束索引
step:步长、间隔长度(可以不指定,默认为1)
c
c[0:4]
c[:4] #start可以不写,默认为0,即从头开始
c[:] #当只写一个":"时,重新复制原列表,生成一个新列表
c[:5:2]
c[::2] #stop可以不写,默认为列表末尾
输出结果为:
[1, 2, 3.5, "asdfa", True]
[1, 2, 3.5, "asdfa"]
[1, 2, 3.5, "asdfa"]
[1, 2, 3.5, "asdfa", True]
[1, 3.5, True]
[1, 3.5, True]
3.列表的运算操作
(1)+
- 概念:+即为列表拼接(不对原列表进行改变)
a=[1, 2, 3]
b=[4, 5, 6]
a+b
输出结果为:
[1, 2, 3, 4, 5, 6]
(2)*
- 概念:*即为列表重复(不对原列表进行改变)
a*2
输出结果为:
[1, 2, 3, 1, 2, 3]
(3)in
- 概念:检测 in 前的元素是否在 in 后的集合中,存在返回True,不存在返回False
1 in a
22 in a
22 not in a
输出结果为:
True
False
True
(4)迭代
- 概念:相当于遍历
for i in a:
print(i)
输出结果为:
1
2
3
4.列表函数
函数名 | 作用 |
---|---|
len( ) | 返回列表中元素的个数 |
min( ) | 返回列表中最小的一个元素值 |
max( ) | 返回列表中最大的一个元素值 |
list( ) | 将一个序列转换为列表 |
len(a)
min([5, 1, 55, 4.5])
max([5, 1, 55, 4.5])
list("基本操作")
输出结果为:
3
1
55
['基', '本', '操', '作']
5.列表方法
方法 | 功能 |
---|---|
L.append(value) | 在列表末尾添加新的元素,括号内的参数为元素名 |
L.insert(index,value) | 在指定位置插入指定的元素 |
L.extend(iterable) | 在列表末尾一次性追加另一个序列中的多个值 |
L.remove(value) | 从左到右查找,移除列表中指定元素第一个匹配项 |
L.popl([index]) | 根据索引移除列表中的一个元素(不加参数则默认移除最后一个元素),并且返回移除元素的值 |
L.index(value) | 从左到右查找指定元素在列表中的索引并返回 |
L.count(value) | 统计某个元素在列表中出现的次数 |
L.reversel(list) | 反向列表中的元素 |
L.sort([reverse=False]) | 对列表L进行排序,默认从小到大 |
L.copy() | 复制L列表并返回一个新的列表 |
L.clear() | 清除列表L中的所有元素 |
测试用例(1)
lst=[11, 22, 33, 44, 55]
lst.append(100)
lst
[11, 22, 33, 44, 55, 100]
测试用例(2)
lst.insert(1, 55)
lst
lst.insert(10, 66) #若插入位置超过列表范围,默认插入最后一位
lst
[11, 55, 22, 33, 44, 55, 100]
[11, 55, 22, 33, 44, 55, 100, 66]
测试用例(3)
lst.extend([77, 88])
lst
[11, 55, 22, 33, 44, 55, 100, 66, 77, 88]
测试用例(4)
lst.remove(100) #若有相同元素,则删除第一个相同元素
lst
print(lst.remove(33)) #函数默认返回None型
lst
[11, 55, 22, 33, 44, 55, 66, 77, 88]
None
[11, 55, 22, 44, 55, 66, 77, 88]
测试用例(5)
lst.pop() #不加参数则默认移除最后一个元素
lst
lst.pop(3)
lst
88
[11, 55, 22, 44, 55, 66, 77]
44
[11, 55, 22, 55, 66, 77]
测试用例(6)
lst.index(66)
lst.index(55) #若有相同元素,则返回第一个相同元素的索引
lst.index(55, 2) #第二个参数意义为:从第二个索引开始查找
4
1
3
测试用例(7)
lst.count(55)
2
测试用例(8)
lst.reverse()
lst
[77, 66, 55, 22, 55, 11]
测试用例(9)
lst.sort() #默认从小到大进行排序
lst
lst.sort(reverse=True) #从大到小进行排序
lst
[11, 22, 55, 55, 66, 77]
[77, 66, 55, 55, 22, 11]
测试用例(10)
lst.copy()
lst
[77, 66, 55, 55, 22, 11]
测试用例(11)
lst.clear(1, 55)
lst
[]
- del也可以进行删除操作
lst=[11, 22, 33]
del lst[0] #删除元素
lst
del lst #删除列表
lst
输出结果为:
[22, 33]
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'lst' is not defined