
Python 中的列表(list)是一种有序的集合,可以包含任意类型的元素,包括数字、字符串、甚至其他列表。列表是可变的,意味着可以修改其内容,如添加、删除或更改元素。它支持广泛的操作,如索引、切片、迭代等,以及内建方法,如排序、反转。列表在存储和处理序列数据时非常有用,是Python编程中非常灵活和强大的数据结构。
list列表的操作多种多样,序列有排序、反序;对列表集合的差集、并集、交集
多个列表合并、对列表进行末尾添加、指定位置添加、末尾追加、删除、修改等操作
只要把逗号分隔的不同的数据项使用方括号括起来即可。
如下所示:
list0 = [] # 空列表list1 = ['phthon', 'java', 1997, 2000]list2 = [1, 2, 3, 4, 5 ]list3 = ["a", "b", "c", "d"]与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
| 函数 | 例子 | 输出 | 说明 |
|---|---|---|---|
| alist.append() | alist.append('app') |
alist = ['app'] |
列表末尾添加 |
| alist.insert() | alist.insert( 3, 2) |
alist = ['app',2] |
列表指定位置添加 |
| alist.insert() | alist.insert(3,3) |
alist = ['app', 2, 3] |
列表指定位置添加 |
| alist.insert() | alist.insert(3,4) |
alist = ['app', 2, 3, 4] |
列表指定位置添加 |
| alist.insert() | alist.insert(3,5) |
alist = ['app', 2, 3, 5, 4] |
列表指定位置添加 |
| alist.extend() | alist.extend([99, '00']) |
alist = ['app', 2, 3, 5, 4,99, '00'] |
列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
| pop_data=alist.pop() | pop_data=alist.pop() | alist = ['app', 2, 3, 5, 4,99] |
默认删除list中最后一个元素,pop_data='00' |
| pop_data=alist.pop() | pop_data=alist.pop(1) | alist = ['app', 3, 5, 4, 99] |
删除第2个元素(0开头),pop_data=2 |
| alist.remove() | alist.remove('app') |
alist = [3, 5, 4,99] |
删除1个list指定元素 |
| n = len(alist) | n = len([1,2,3]) | n = 3 | 列表元素个数 |
| lst2 = list(set()) | lst2 = list(set([2, 1, 3, 4, 1])) | lst2 = [1, 2, 3, 4] | 去重 |
| m = max(alist) | m = max([1,2,3]) | m = 3 | 返回列表元素最大值 |
| n = min(alist) | n = min([1,2,3]) | n = 1 | 返回列表元素最小值 |
| l = list(seq) | l = list((1,2,3)) | l = [1, 2, 3] | 将元组转换为列表 |
count() 用于统计某个元素在列表中出现的次数。
alist = [123, 'xyz', 'zara', 'abc', 123]print (alist.count(123))以上实例输出结果如下:>>>2使用index()方法:用于从列表中找出某个值第一个匹配项的索引位置。

alist = [123, 'xyz', 'zara', 'abc', 123]print (alist.index(123))print (alist.index('xyz'))以上实例输出结果如下:第0个、第1个>>>0>>>1

索引访问列表中的值
注:切片同样适用于字符串,字符串也有下标
| 使用方法 | 说明 |
|---|---|
name[n:m] |
切片是不包含后面那个元素的值(顾头不顾尾) |
name[:m] |
如果切片前面一个值缺省的话,从开头开始取 |
name[n:] |
如果切片后面的值缺省的话,取到末尾 |
name[:] |
如果全部缺省,取全部 |
name[n:m:s] |
隔s个元素取一次; 步长是正数从左往右取; 步长是负数从右往左取 |
alist = [123, 'xyz', 'zara', 2018, 'only']
| 例子 | 输出结果 |
|---|---|
| alist[0] | 123 |
| alist[-2] | 2018 |
| alist[1:] | ['xyz', 'zara', 2018, 'only'] |
| alist[:3] | [123, 'xyz', 'zara'] |
| alist[1:3] | ['xyz', 'zara'] |

详细关于list、字符串、元组的切片还可以看自带方法 - data[ ] - 切片
sort() 用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法:list.sort(cmp=None, key=None, reverse=False)
| 参数 | 作用 |
|---|---|
| cmp | 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 |
| key | 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 |
| reverse | 排序规则,reverse = True 降序, reverse = False 升序(默认)。 |
alist = [123, 'xyz', 'zara', 2018, 'only']alist.sort() #降序alist.sort(reverse = True) #升序使用reverse() 方法:用于反向列表中元素。alist = [123, 'xyz', 'zara', 2018, 'only']alist.reverse()print(alist)以上实例输出结果如下:>>>['only', 2018, 'zara', 'xyz', 123]

map(方法名, 列表)
类似for循环
def f(x):return x*xdata = map(f, [1, 2, 3])for i in data:print (i)输出结果:149

def f(self):return self["id"]data = map(f, [{"id":1},{"id":2}])for i in data:print(i)输出结果:12

## 差集a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]b = [(2, 'aa', 'dsad')]data = set(a).difference(set(b))print(type(data))print(data)<class "set">{(3, 'cc', 'dada'), (0, 'ss', 'okok')}data2 = list(data)print(type(data2))print(data2)<class "list">[(3, 'cc', 'dada'), (0, 'ss', 'okok')]

## 并集a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]b = [(2, 'aa', 'dsad')]data = set(a).union(set(b))print(type(data))print(data)<class "set">{(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')}data2 = list(data)print(type(data2))print(data2)<class "list">[(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]

## 交集a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]b = [(2, 'aa', 'dsad')]data = set(a).intersection(set(b))print(type(data))print(data)<class "set">{(2, 'aa', 'dsad')}data2 = list(data)print(type(data2))print(data2)<class "list">[(2, 'aa', 'dsad')]

seasons = ['Spring', 'Summer', 'Fall', 'Winter']list(enumerate(seasons))[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]list(enumerate(seasons, start=1)) # 下标从 1 开始[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

list1 = ['1',' ','2',' ','3','4',' ']while ' ' in list1:list1.remove(' ')## ['1', '2', '3', '4']
