列表是Python最具灵活性的有序集合对象类型。与字符串不同,列表是可变对象。可以通过指定的偏移和分片、列表调用、删除语句等方法来实现。
列表的特点如下:
- 任意对象的有序集合;
- 通过偏移读取;
- 可变长度、异构以及任意嵌套;
- 对象引用数组。
常见列表操作:
L=[] #创建空列表 L=[0,1,2,3] #索引0-3 L=[‘abc‘,[‘def‘,‘ghi‘]] #嵌套子列表 L=list(‘spam‘) L=list(range(-4,4)) #[-4, -3, -2, -1, 0, 1, 2, 3] L[i] L[i][j] L[i:j] len(L)
合并操作,“+”号两边类型必须相同,否则会报错。
>>>L=[0,1,2,3] >>>L2=[2,3,4,5,6] >>>L + L2 [0, 1, 2, 3, 2, 3, 4, 5, 6] >>>str([1,2]) + "34" ‘[1,2]34‘ >>>[1,2] + list("34")
列表迭代和解析:
>>>L = [x**2 for x in range(5)] #列表解析 >>>L [0, 1, 4, 9, 16
这个表达式功能等同于手动构建一个for循环创建列表,但是列表解析的编码更简单,且运行起来更快。
>>>res = [] >>>for c in ‘spam‘ >>>res.append(c*4) >>>res [‘ssss‘, ‘pppp‘, ‘aaaa‘, ‘mmmm‘]
用map函数创建新的列表:
>>>list(map(abs,[-1, -2, -4, 0, 3])) [1, 2, 4, 0, 3]
list的分片,要么第一个序号是0,要么最后一个序号是0:
>>>L=[‘spam‘, ‘ham‘, ‘turkey‘] >>>L[2] ‘turkey‘ >>>L[-2] ‘spam‘ >>>L[1:] [‘ham‘, ‘turkey‘] >>>L[:-1] [‘spam‘, ‘ham‘]
二维数组:
>>>matrix = [[1,2,3], [4,5,6], [7,8,9]] >>>matrix[1] [4,5,6] >>>matrix[2][2] 9
原处修改列表:
>>>L=[‘spam‘, ‘ham‘, ‘eggs‘] >>>L[1]=‘fish‘ #单个赋值 >>>L [‘spam‘, ‘fish‘, ‘eggs‘] >>>L[0:2]=[‘eat‘, ‘more‘] #分片赋值 >>>L [‘eat‘, ‘more‘, ‘eggs‘]
- 插入操作
>>>L.append(‘please‘) >>>L [‘eat‘, ‘more‘, ‘eggs‘, ‘please‘] >>>L.sort() #会原地修改L >>>L [‘eat‘, ‘eggs‘, ‘more‘, ‘please‘]
注:L.append(‘please‘)和L+[‘please‘]结果类似,但不同的是前者会原地修改L,而后者会生成新的列表。
时间: 2024-10-18 07:31:49