列表
列表是python中最灵活的有序集合对象类型, 列表可以包含类型的对象, 与字符串不同, 列表属于可变类型。
常见的一些列表操作:
l = [] # 空列表
l = [1, 2, 3, 4] # 长度为4的列表, 支持索引(0~3)
l = ['abc', [1, 3]] # 支持列表嵌套
l = list('hello') # 可迭代项目的列表
l = list(range(-4, 4)) # [-4, -3, -2, -1, 0, 1, 2, 3]
l[i] / l[i][j] # 支持索引
l[i:j] # 切片
len(l) # 求长
l1 + l2 # 合并
l * 3 # 重复
for x in l: print(x) # 迭代
3 in l # 成员关系
l.append(4) / l.extend([5, 6]) # 增长
l.insert(i, x) # 插入
l.index(2) # 查找索引
l.count(x) # 出现次数
l.sort() # 排序
l.reverse() # 反转
del l[k] / del l[k:j] # 删除
l.pop(index) # 根据索引删除, 默认删除最后一个
l.remove(value) # 根据值删除
l[i:j] = [] # 删除
l[i] = value # 索引赋值
l[i:j] # 分片赋值
[x ** 2 for x in range(5)] # 列表解析
list(map(ord, 'spam'))代码实例
>>> [1, 2, 4] + [5, 6, 7] # 返回新的列表
[1, 2, 4, 5, 6, 7]
>>> len([1, 2, 3])
3
>>>
>>> ['kobe'] * 4
['kobe', 'kobe', 'kobe', 'kobe']>>> str([3, 4]) + '5, 6'
'[3, 4]5, 6'
>>> list('34') + [5, 6]
['3', '4', 5, 6]>>> a = [1, 3, 1, 4, 56, 4]
>>> 3 in a
True
>>> for x in a: print(x)
...
1
3
1
4
56
4
>>>>>> [x * 2 for x in 'kobe']
['kk', 'oo', 'bb', 'ee']>>> list(map(abs, [-1, 2, 0, -4, 4]))
[1, 2, 0, 4, 4]
>>>索引, 分片, 矩阵
由于列表是序列, 因此支持索引与分片。对列表进行分片时往往返回新的列表。
>>> l = [1, 3, 4, 5]
>>> l[2]
4
>>> l[-2]
4
>>> l[1:]
[3, 4, 5]由于列表支持嵌套, 所以有时候我们需要把几次索引连接在一起。
>>> marrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> marrix[0][0]
1原处修改列表
列表是可变的, 因此支持在原处修改。
索引与分片赋值都是在列表原处进行修改。
>>> a = [1, 3, 3, 4, 5]
>>> a[1] = 2
>>> a
[1, 2, 3, 4, 5]
>>> a[:3] = [-1, -2, -3]
>>> a
[-1, -2, -3, 4, 5]
>>> a[2:] = [4]
>>> a
[-1, -2, 4]list.append(x): 把一个单项(对象引用)添加到列表的末尾。
>>> a
[-1, -2, 4]
>>> a.append([1,2])
>>> a
[-1, -2, 4, [1, 2]]sort方法是原地对列表进行修改, sort是使用python标准的比较校验作为默认值(这里指的是字符串比较), 默认是升序。
sort也支持使用name=value方式来指定配置选项, reverse表示是否按照降序排列.
>>> l = ['abc', 'ABD', 'aBe']
>>> l.sort()
>>> l
['ABD', 'aBe', 'abc']
>>> l = ['abc', 'ABD', 'aBe']
>>> l.sort(key=str.lower)
>>> l
['abc', 'ABD', 'aBe']
>>> l = ['abc', 'ABD', 'aBe']
>>> l.sort(key=str.lower, reverse=True)
>>> l
['aBe', 'ABD', 'abc']另外内置函数sorted, 它可以排序任何集合(不只是列表), 并且针对结果返回一个新的列表。
>>> l = ['abc', 'ABD', 'aBe']
>>> sorted(l, key=str.lower, reverse=True)
['aBe', 'ABD', 'abc']
>>> l = ['abc', 'ABD', 'aBe']
>>> sorted([x.lower() for x in l], reverse=True)
['abe', 'abd', 'abc']>>> l = [1, 3]
>>> l.extend([2, 4])
>>> l
[1, 3, 2, 4]
>>> l.pop()
4
>>> l
[1, 3, 2]
>>> l.pop(1)
3
>>> l
[1, 2]
>>> l.reverse()
>>> l
[2, 1]
>>> list(reversed(l))
[1, 2]
>>>>>> l = ['kobe', 'win', 'error']
>>> l.index('win')
1
>>> l.insert(1, 'hello')
>>> l
['kobe', 'hello', 'win', 'error']
>>> l.remove('error')
>>> l
['kobe', 'hello', 'win']
>>> l.pop(1)
'hello'
>>> l
['kobe', 'win']
>>>>>> l
['kobe', 'win']
>>> l.append('name')
>>> l.append('cpul')
>>> l
['kobe', 'win', 'name', 'cpul']
>>> del l[0]
>>> l
['win', 'name', 'cpul']
>>> del l[1:]
>>> l
['win']
>>> l.extend(['name', 'age', 'address'])
>>> l
['win', 'name', 'age', 'address']
>>> l[2:] = []
>>> l
['win', 'name']