Python列表list的使用

本文全面介绍Python列表list的使用,包括列表类型、索引、切片、增删改查方法,如append、extend、insert等,以及排序、逆序、计算长度、最值、平均值等操作。通过实例帮助读者快速掌握列表操作。
摘要由CSDN通过智能技术生成

本文几乎囊括了列表list的全部使用方法,便于快速学习上手,也便于查阅。
其它类型使用:字符串字典集合

列表

列表类型

列表是可变序列,通常用于存储一系列类型相同的值。列表用方括号表示,其中的值用逗号,分隔。可用列表推导式或list()方法创建列表。

l1 = [1, 2, 3]
l2 = ['cat', 'bat', 'rat']
l3 = []  # 空列表
l4 = [x for x in range(5)]
l5 = list((1, 2, 3))

列表中也可以包含列表(多维列表)。如

l = [['cat', 'bat', 'rat'], [1, 2, 3]]

索引

列表中的第 1 个元素下标是0,第 2 个值下标是1,以此类推。

l = ['cat', 'bat', 'rat']
print(l[0])  # 'cat'
print(l[1])  # 'bat'
print(l[2])  # 'rat'

列表中的列表可通过多重下标访问。如

l = [['cat', 'bat', 'rat'], [1, 2, 3]]
print(l[0][1])   # 'bat'
print(l[1][2])   # 3

第 1 个下标表明使用的是哪个列表,第 2 个下标表明列表中的值。

也可使用负数作为下标,-1 指最后 1 个元素,-2是倒数第 2 个元素,以此类推。

l = ['cat', 'bat', 'rat']
print(l[-1])  # 'rat'
print(l[-3])  # 'cat'

切片

切片可以从列表中取得多个值,得到新的列表。如

l = ['cat', 'bat', 'rat', 'elephant']
print(l[1: 3])  # ['bat', 'rat']
print(l[: 2])   # ['cat', bat']
print(l[2: ])   # ['rat', 'elephant']
print(l[0: 4: 2])  # ['cat', 'rat']

切片用冒号:分隔两个数字,第 1 个数字表示开始处的下标,省略则默认 0;第 2 个数字表示结束处的下标,省略则表示列表长度。新得到的列表从第 1 个数字作为下标开始,直到最后 1 个数字下标,但不包括最后 1 个数字所指代的元素。切片索引值也可以包含步长。

长度、最值和平均值(len(), min(), max(), sum())

len()函数将返回列表中元素的个数。如

len(['cat', 'bat', 'rat', 'elephant'])   # 4

max()方法求列表中元素最大值,min()方法求列表元素最小值。

l = [2, 4, 1, 10]
max(l)   # 10
min(l)   # 1

sum()方法可得到所有元素的和,除以长度即可得到平均值。

sum(l)   # 17
sum(l) / len(l)  # 4.25

innot in

innot in确定一个值是否在列表中。如

'cat' in ['cat',  'bat',  'rat']       # True
'elephant' in ['cat',  'bat',  'rat']  # False
'cat' not in ['cat',  'bat',  'rat']   # False
'elephant' not in ['cat',  'bat',  'rat']  # True

多重赋值

用列表中的值为多个变量赋值,变量数目必须与列表长度相同。

size, color, disposition = ['fat', 'black', 'loud']

该操作常见于函数返回值。

增删改

修改值

可利用下标的形式,修改列表中元素的值。如

l = ['cat',  'bat',  'rat']
l[1] = 'elephant'
print(l)   # ['cat', 'elephant',  'rat']

删除值(del, clear(), pop(), remove())

del语句删除某个下标处的值,被删除值后面的元素下标向前移动一位。如

l = ['cat',  'bat',  'rat']
del l[1]
print(l)   # ['cat', 'rat']

clear()删除所有元素,相当于

del l[:]
l.clear()

pop()方法删除最后一个元素,并返回该元素;pop(i)删除第i个元素。

l = ['cat',  'bat',  'rat']
l.pop()   # 'rat'
l = ['cat',  'bat',  'rat']
l.pop(1)   # 'bat'

remove(x)删除列表中第1个出现的x,如果x不在列表中,则报ValueError错误。

l = ['cat',  'bat',  'rat']
l.remove('bat')   # ['cat', 'rat']
l = ['cat',  'bat',  'rat', 'bat']
l.remove('bat')   # ['cat', 'rat', 'bat']

连接和倍增(+, *)

+可连接两个列表,得到新的列表。*作用于一个列表和一个整数,实现列表的复制。如

[1, 2, 3] + ['cat',  'bat',  'rat']   # [1, 2, 3, 'cat', 'bat', 'rat']
['cat',  'bat',  'rat'] * 3           # ['cat', 'bat', 'rat', 'cat', 'bat', 'rat', 'cat', 'bat', 'rat']

插入值(append(), extend(), insert())

append()方法直接将新的对象添加至列表末尾。如果新添加的对象是个列表,则直接把列表加入末尾。

l = ['cat',  'bat',  'rat']
l.append('elephant')  # ['cat', 'bat', 'rat', 'elephant']
l1 = ['cat',  'bat']
l2 = ['rat', 'elephant']
l1.append(l2)   # ['cat',  'bat', ['rat', 'elephant']]

extend()方法同样是把新的对象添加至列表末尾。与append()方法不同的是,如果添加的是列表,则把新对象中的元素逐个添加至列表末尾,类似于连接(+)操作。

l1 = ['cat',  'bat']
l2 = ['rat', 'elephant']
l1.extend(l2)   # ['cat',  'bat', 'rat', 'elephant']

insert()方法可以在列表中任意位置插入值,第 1 个参数表示新元素下标,第 2 个参数表示新元素的值。如

l = ['cat',  'bat',  'rat']
l.insert(1, 'elephant')  # ['cat', 'elephant', 'bat', 'rat']

其它方法

复制(copy())

使用=可将一个变量对列表的引用赋值给另外一个变量,两个变量指向同一个列表。当一个变量发生变化时,另一个变量会同时变化。

l1 = [1, 2, 3]
l2 = l1
print(l2)   # [1, 2, 3]
l2[2] = 10
print(l1)   # [1, 2, 10]
print(l2)   # [1, 2, 10]

如果不希望上述情况发生,则可使用copy()方法。

l1 = [1, 2, 3]
l2 = l1
l2[2] = 10
print(l1)   # [1, 2, 3]
print(l2)   # [1, 2, 10]

copy()方法也存在与copy模块中,起到相同的效果。

import copy
l2 = copy.copy(l1)

如果列表是多维列表,那么上述 2 个copy方法就没用了,则要使用到copy模块中的deepcopy()方法。

import copy
l2 = copy.deepcopy(l1)

更过关于copy模块的内容。

获取索引(index())

index()方法查找元素在列表中的下标,如果该元素不在列表中,就报错。如果有多个元素,则返回第一个元素的下标。如

l = ['cat',  'bat',  'rat']
l.index('bat')   # 1
l = ['cat',  'bat',  'rat', 'rat', 'elephant']
l.index('rat')   # 2

获取某个元素个数(count())

count(x)求元素x在列表中出现的次数。

l = [1, 2, 3, 5, 3, 10, 3]
l.count(3)   # 3

排序(sort())

sort()方法用于排序,如

l = ['d', 'e', 'a', 'c', 'b']
l.sort()   # ['a', 'b', 'c', 'd', 'e']

可以指定reverse关键字为True,让其逆序排列。如

l = ['d', 'e', 'a', 'c', 'b']
l.sort(reverse=True)   # ['e', 'd', 'c', 'b', 'a']

sort()方法不能对既有数字又有字符串的列表排序。sort()排序是区分大小写的,按ASCII码排序,如果要忽视大小写,则需要指定关键字keystr.lower。如

l = ['D', 'e', 'a', 'c', 'B']
l.sort()    # ['B', 'D', 'a', 'c', 'e']
l.sort(key=str.lower)  # ['a', 'B', 'c', 'D', 'e']

逆序(reverse())

reverse()方法逆转列表中元素的顺序,如

l = ['cat',  'bat',  'rat']
l.reverse()   # ['rat', 'bat', 'cat']

更详尽的关于列表内容请参阅python文档

list操作汇总图片。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值