列表
python的列表对象是最通用的序列,是一个任意类型的对象的位置相关的有序集合。它大小可变的,通过偏移量进行赋值以及其他各种列表方法进行调用,可以修改列表的大小。主要特点有:任意对象的有序集合;通过偏移读取,可变长、异构以及任意嵌套,可变序列,对象引用数组(实际上,在python解释器内部,列表就是c数组而不是链接结构)。
1)序列操作
列表是序列的一种,所以支持字符串用过的序列操作。唯一的区别是其结果往往是列表。+合并,*重复,for x in L:print(x)迭代,
>>> L = list([123,'spam',1.23])
>>> len(L)
3
>>> L[:-1]
[123, 'spam']
>>> L + [1,2,3]
[123, 'spam', 1.23, 1, 2, 3]
>>> L1 = list(range(-4,4))
>>> L1
[-4, -3, -2, -1, 0, 1, 2, 3]
边界检查:尽管列表没有固定大小,python仍不允许引用不存在的元素,超出列表末尾之外的索引总是会导致错误的,对列表超出范围之外的赋值亦是如此。
2)类型特定的操作
列表比其他语言的数组强大的多,其中一个方面就是列表没有固定类型的约束。此外,没有固定大小,可以根据需要增加或减少列表大小,来响应特定的操作。
append在尾部加入一项,pop移除给定偏移量的一项(默认移除最后一项),insert任意插入,remove按值移除元素,extend加入列表的全部元素。列表sort方法默认升序进行排序,而reverse对列表进行翻转。
内置函数sort可以排序任意集合(不只是列表),并且针对结果返回一个新的列表(而不是原处修改)
>>> L.append('qq')
>>> L
[123, 'spam', 1.23, 'qq']
>>> L.pop(2)
1.23
>>> L.insert(1,'wechat')
>>> L
[123, 'wechat', 'spam', 'qq']
>>> L.remove('qq')
>>> L
[123, 'wechat', 'spam']
>>> L.extend([4,4,7])
>>> L
[123, 'wechat', 'spam', 4, 4, 7]
>>> L.pop()
7
>>> L.count(4)
2
>>> M = [2,5,9,3,6]
>>> M.sort()
>>> M
[2, 3, 5, 6, 9]
>>> M.reverse()
>>> M
[9, 6, 5, 3, 2]
>>> L = ['abc', 'ABD', 'aBe