列表是python中最具灵活性的有序集合对象类型。它具有以下特点:任意对象的有序集合,可以通过索引读取。自身长度可变以及支持任意嵌套,属于可变对象。可以通过运行help(list)或者dir(list)查看list的方法完成清单。
1、列表的常用操作
# len是python的内置函数,求长度,此函数同样适用于字符
>>> len([1, 2, 3])
3
# +合并列表时,返回的是一个新对象,而非在原处修改
>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
# 重复,此操作同样适用于字符
>>> ['Ni'] * 4
['Ni', 'Ni', 'Ni', 'Ni']
# 定义一个列表
>>> L = ['A', 'B', 'C', 'C', '']
# 向列表末尾添加一个元素
>>> L.append(4)
>>> L
['A', 'B', 'C', 'C', '', 4]
# 合并列表,与+ 号不同的是,此处并不会产生新对象
# 需要注意的其与append的区别
>>> L
['A', 'B', 'C', 'C', '', 4]
>>> L.extend([1, 2])
>>> L
['A', 'B', 'C', 'C', '', 4, 1, 2]
>>> L.append([1, 2])
>>> L
['A', 'B', 'C', 'C', '', 4, 1, 2, [1, 2]]
# 向指定索引位置插入元素,所以0代表第一个元素
>>> L.insert(0, 'aaaaaa')
>>> L
['aaaaaa', 'A', 'B', 'C', 'C', '', 4, 1, 2, [1, 2]]
# 获取元素'aaaaaa'在列表中第一次出现的索引位置
>>> L.index('aaaaaa')
0
# 计算某个元素在列表中出现的此书
>>> L.count('C')
2
# 列表倒置
>>> L.reverse()
>>> L
[[1, 2], 2, 1, 4, 'aaaaaa', 'C', 'C', 'B', 'A', '']
# map会对序列中的各项应用于一个函数并把结果收集到一个新的列表中,
# 此处ord是之前定义的一个函数,'spam'字符是一个序列,当然此处
# 可以看做是一个列表
list(map(ord, 'spam'))
# 定义一个空列表
L = []
2、列表迭代和解析
# 判断列表中是否包含某个元素
>>> 3 in [1, 2, 3]
True
# 遍历操作
>>> for x in [1, 2, 3]:
print(x, end=' ')
1 2 3
# 列表解析
>>> res = [c * 4 for c in 'SPAM']
>>> res
['SSSS', 'PPPP', 'AAAA', 'MMMM']
# map的应用,列表解析可以实现同样的功能,且速度更快
>>> list(map(abs, [-1, -2, 0, 1, 2]))
[1, 2, 0, 1, 2]
>>>
3、索引和分片及其赋值操作
>>> L = ['spam', 'Spam', 'SPAM']
>>> L[2]
'SPAM'
>>> L[-2]
'Spam'
# 分片操作,获得列表的子集的几种方法
>>> L[:]
['spam', 'Spam', 'SPAM']
>>> L[1:]
['Spam', 'SPAM']
>>> L[:1]
['spam']
# 赋值操作对列表直接修改,注意左闭右开
>>> L[1] = 'eggs'
>>> L
['spam', 'eggs', 'SPAM']
>>> L[0:2]=['EAT', 'more']
>>> L
['EAT', 'more', 'SPAM']
# 批量删除列表中的元素
>>> del L[1:]
>>> L
['EAT']
哈哈,以上就是列表的详细操作,具体可参考《python学习手册》第4版第8章。由于其对后续学习pandas非常重要,所以这里先简要介绍了列表的使用。如果需要此电子书,可以关注我的微信公众号:python小工具。让我们一起,为解决办公的自动化而努力!!