Python数据结构之列表
1、Python列表是Python内置的数据结构对象之一,相当于数组
2、列表用[] 包含,内有任意的数据对象,每一个数据对象以 ,逗号分隔,每隔数据对象称之为元素
3、Python列表是一个有序的序列
4、Python列表支持任意的嵌套,嵌套的层次深度没有限制
总结:列表是一个Python的数据结构,用[] 来表示,可以存储任何对象的一个有序序列
作用:存放各种类型的数据,并有序排列
定义: a = list() a [] b = [] b [] c = list('c') c ['c'] 列表的切片和索引 切片 标识:冒号,有冒号是切片的象征 方法:通过坐标去辨识 a = [1,'a','123',{1:2}] a[0:4] [1, 'a', '123', {1: 2}] a[:4] [1, 'a', '123', {1: 2}] a[0:] [1, 'a', '123', {1: 2}] a[:] [1, 'a', '123', {1: 2}] a[:-1] [1, 'a', '123'] 索引:标识着列表中从0开始的第几项 a [1, 'a', '123', {1: 2}] a[0] 1
列表方法 1、增 append:往列表中添加元素,该元素可以是任何形式的数据结构或者对象,添加的对象作为列表中的一个元素,放到最后一位 a = ['1'] a.append('1') a ['1', '1'] a.append(['2']) a ['1', '1', ['2']] a.append({1:2}) a ['1', '1', ['2'], {1: 2}] extend:用于在列表末尾一次性追加另一个序列中的多个值,不是把对象完整的添加,而是把其中每一项拿出来 注意:有的说extend只能是列表,这种说法不对,可以是序列式的数据结构 a = [] b = ['1'] a.extend(b) a ['1'] a.extend(a) a ['1', '1'] a.extend('m') a ['1', '1', 'm'] a.extend((1,2)) a ['1', '1', 'm', 1, 2] a.extend([9,'c']) a ['1', '1', 'm', 1, 2, 9, 'c'] extend和append区别 a = ['1'] b,c = [],[] b.append(a) b [['1']] c.extend(a) c ['1'] append:把整体添加进来 extend:把每一项添加进来 insert:两个参数,一个是insert的位置,第二个是insert的元素 a = ['s',3,4] a.insert(2,'x') a ['s', 3, 'x', 4] a.insert(2,'y') a ['s', 3, 'y', 'x', 4] 删 remove:该方法没有返回值但是会移除两种中的第一个匹配项 a = [1,2,3] a.remove(2) a [1, 3] pop:从列表移除并返回移除的元素,默认移除最后一个,如果指定第几个,便移除第几个 a = ['d','s','j'] a.pop(1) 's' a ['d', 'j'] a.pop() 'j' a ['d'] 知识扩展 堆栈:先进后出,通过pop()实现 队列:先进先出,通过pop(0)实现 改 a = [1,2,3] a[1]=9 a [1, 9, 3] 查 1、索引 2、通过index去进行查询 3、count计算列表中元素的数量 a [1, 9, 3] a.index(3) 2 a.append(9) a [1, 9, 3, 9] a.count(9) 2 a.index(9) 1 a.index(9) 1
列表的排序 sort:列表本身排序 a = [1,4,2,4] a.sort() a [1, 2, 4, 4] a.sort(reverse=True) a [4, 4, 2, 1] sorted(a) [1, 2, 4, 4] a [4, 4, 2, 1] sort与sorted区别 1、sort是列表方法,sorted是内置函数对一个序列数据的方法 2、sort改变了列表本身,sorted不改变数据结构本身 反转 a [4, 4, 2, 1] a.reverse() a [1, 2, 4, 4] 列表循环(两种循环方式,非常重要) for item in a : print item for index,value in enumerate(a): print index.item 题目:对于列表a=[2, 8, 1, 33, 43, 9, 3],它的索引偶数项加1,输出新的列表 a = [2, 8, 1, 33, 43, 9, 3] b = [] for item in a: if a.index(item) % 2 == 0: b.append(item + 1) else: b.append(item) print(b) a = [2, 8, 1, 33, 43, 9, 3] b = [] for index,value in enumerate(a): if index % 2 == 0: b.append(value+1) else: b.append(value) print(b)
列表推导式 格式: [表达式 for item1 in 序列1 ... for itemN in 序列N if 条件表达式] 作用: 一句话完成:在循环遍历中把满足某个条件的项取出来。 列出10以内的偶数 a = list(range(1,11)) s = [x for x in a if x % 2 == 0] print(s)