Python 基础备忘之 List 篇

本文介绍了Python中的列表(List)数据结构,包括如何创建List、向List添加元素、访问和删除元素,以及List的切片操作。通过索引和方法如append、insert、remove等,详细阐述了List的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是 List

List 是 Python 中的一种序列类型,List 是可变的,因此,即使在创建列表之后,它们也可以更改。

创建 List

使用一对方括号[] 创建一个 List:

# 创建一个空的 List
l = []
print(l)

# 创建一个数字 List
l = [1,2,3]
print(l)

# 创建一个字符串 List
l = ['a','b','c']
print(l)

# 创建一个嵌套的 List
l = [['a'], ['a', 'b', 'c']]
print(l)

创建 List

使用列表推导式创建 List: [x for x in iterable]

 l = [x for x in range(10)]
print(l)

创建 List

使用类型的构造器创建 List:list()list(iterable)

l = list('abc')
print(l)

l = list( (1, 2, 3) )
print(l)

创建 List

向 List 中添加元素

使用 list.append(x) 方法向列表末尾添加一个元素:

l = ['a','b','c']
l.append('d')
print(l)

向 List 中添加元素

使用 list.insert(i, x) 在指定位置插入元素:

l = ['a','b','c','d','e']
l.insert(3, 'x')
print(l)

向 List 中添加元素

使用 list.extend(iterable) 在 List 末尾同时添加多个元素:

l = ['a','b','c','d','e']
l.extend(['f','g'])
print(l)

向 List 中添加元素

访问 List 中的元素

可通过索引访问 List 元素,List 索引由 0 开始,所以 List 的最后一个元素索引为 len(s) -1 ,同时,索引必须为整数。

l = [x + 1 for x in range(10)]
print(l)

# 第一个元素
l[0]

# 最后一个元素
l[len(l) - 1]

访问 List 中的元素

访问 List 元素时,允许使用负数,负数索引是指从结尾开始,-1 指最后一项, -2 指倒数第二项。

l = [x + 1 for x in range(10)]
print(l)

# 最后一个元素
l[-1]

# 倒数第二个元素
l[-2]

# 第一个元素
l[-len(l)]

访问 List 中的元素

从 List 中删除元素

使用 list.remove(x) 从 List 中删除元素,该方法从 List 中删除第一个值为 x 的元素。未找到指定元素时,触发 ValueError 异常。

l = ['a','b','c','d','e']
l.remove('c')
print(l)

l.remove('x')

print(l)

从 List 中删除元素

使用 list.pop([i]) 删除 List 中指定位置的元素,并返回被删除的元素。未指定位置时, a.pop() 删除并返回 List 的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。)

l = ['a','b','c','d','e']
l.pop()
print(l)

l.pop(2)
print(l)

从 List 中删除元素

List 切片

切片可以看作是索引的扩展,切片是通过使用下标标记来创建的,在 [] 中给出几个以冒号分隔的数字,例如 variable_name[1:3:5] 。方括号(下标)标记在内部使用 slice 对象。既然切片是索引的扩展,那么切片也同样支持负数索引。关于切片,也曾经做过简单的整理,详见 优快云 文章 : 《Python 切片知识整理》

Notes

List 是序列类型中的一种,支持通用序列操作,如下表所示,详情请参阅官方文档,Python 标准库 - 内置类型:《序列类型 — list, tuple, range》:

运算结果注释
x in s如果 s 中的某项等于 x 则结果为 True,否则为 False(1)
x not in s如果 s 中的某项等于 x 则结果为 False,否则为 True(1)
s + ts 与 t 相拼接(6)(7)
s * n 或 n * s相当于 s 与自身进行 n 次拼接(2)(7)
s[i]s 的第 i 项,起始为 0(3)
s[i:j]s 从 i 到 j 的切片(3)(4)
s[i:j:k]s 从 i 到 j 步长为 k 的切片(3)(5)
len(s)s 的长度
min(s)s 的最小项
max(s)s 的最大项
s.index(x[, i[, j]])x 在 s 中首次出现项的索引号(索引号在 i 或其后且在 j 之前)(8)
s.count(x)x 在 s 中出现的总次数
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值