列表是最常用的Python数据类型。
列表的数据项可以是不相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1=['first',2,(3,),{'name':'monicx'}]
列表的内置函数:
主要操作:
1、按索引取值。
2、切片(start,end,step)
切片切出来的是子列表。
>>> S=['monicx1','monicx2','monicx3'] >>> S[0:2:1] ['monicx1', 'monicx2']
3、len()长度
长度就是列表元素的个数
4、成员运算in和not in
就是判断某一个元素是不是在这个列表中
5、追加append()和插入insert()
追加是在列表的未尾加入一个元素
插入是在列表某个元素前插入,给出具体的索引,没有索引会报错。
>>> list1=['first',2,(3,),{'name':'monicx'}] >>> list1.append('zuijia') >>> list1.insert(3,'charu') >>> list1 ['first', 2, (3,), 'charu', {'name': 'monicx'}, 'zuijia']
6、删除
pop()方法默认删除末尾的元素,它是取走一个值,而remov()它是单纯的删除。
>>> list2=['monicx','miaoqinian'] >>> print(list2.pop()) miaoqinian >>> list2 ['monicx'] >>>
>>> list2=['monicx','miaoqinian'] >>> print(list2.remove('miaoqinian')) None >>> list2 ['monicx'] >>>
7、循环
list3=['monicx1','monicx2','monicx3','……'] #依赖索引: # 方式一 i=0 while i<len(list3): print(list3[i]) i+=1 # 方式二 for i in range(len(list3)): print(list3[i]) # 不依赖索引: for i in list3: print(i)
接着需要撑握:
1、count()
>>> list4=['a','a','b'] >>> print(list4.count('a')) 22、extend()和append()
extend()将一个列表中的每个元素都加入到一个列表中。
而append()是将一个列表当成一个元素加入到列表中。
>>> list5=['a','b','c','d','e'] >>> list6=['f','g','h'] >>> list5.extend(list6) >>> list5 ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] >>> list5=['a','b','c','d','e'] >>> list6=['f','g','h'] >>> list5.append(list6) >>> list5 ['a', 'b', 'c', 'd', 'e', ['f', 'g', 'h']] >>>3、index()
index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
>>> list7=['a','b','c','a','e','a'] >>> print(list7.index('a',2)) 3 >>> print(list7.index('a')) 0 >>> print(list7.index('g')) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 'g' is not in list
4、reverse()
该方法没有返回值,但是会对列表的元素进行反向排序。
5、sort()
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
大前提:只能同类型直接比较大小,对于有索引值直接的比较是按照位置一一对应进。
6、clear()
清空一个列表
>>> list8=['a','b','c','a','e','a'] >>> list8.clear() >>> list8 [] >>>
7、copy()
深拷贝一个列表的数据到另一个数组:
>>> list9=['a','b','c','a','e','a'] >>> list10=list9.copy() >>> list10 ['a', 'b', 'c', 'a', 'e', 'a'] >>> list10[1]='monicx' >>> list9 ['a', 'b', 'c', 'a', 'e', 'a'] >>> list10 ['a', 'monicx', 'c', 'a', 'e', 'a']
引伸1:
""" 生成如下列表: [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]] """ # 方式一 list1 = [] for i in range(4): tmp = [] for j in range(5): tmp.append(j * i) list1.append(tmp) print(list1) # 方式二 ret = [[i * j for j in range(5)] for i in range(4)] print(ret)
引伸2:
def extend_list(v, li=[]): li.append(v) return li list1 = extend_list(10) print(list1) list2 = extend_list(123, []) list3 = extend_list('a') print(list1) # [10, 'a'] print(list2) # [123, ] print(list3) # [10, 'a'] print(list1 is list3) # True # # 第二题:问以下代码的输出结果是什么? list1 = ["a", "b", "c", "d", "e"] print(list1[10:]) # [] # # 第三题:如何打乱一个有序的列表? list4 = [11, 22, 33, 44, 55] import random random.shuffle(list4) print(list4) list4.sort() print(list4) # 快速复制一个列表 list5 = [11, 22, [33, [44, 55]]] # list6 = list5 # print(list6) # list5[2][1][0] = 444 # print(list6) list7 = list5[:] print(list7) list5[2][1][0] = 444 print(list7) print(id(list7), id(list5))