list:是其他语言的数组,序列是有序的,可重复的
1、创建list
list = [1,2,3]
list1 = ['a','b','c']
list2 = []空列表
代码:
1 list = [1,2,3]2 list1 = ['a','b','c']3 list2 =[]4 print(list,type(list))5 print(list1,type(list1))6 print(list2,type(list2))
运行结果:
2、添加新的元素
list.append()在list末尾增加一个元素
list.insert(n,3)在指定位置添加元素,如果指定的下标不存在,那么就在末尾添加
list1.extend(list2)把list2的元素合并到list1中,list2中元素任然正常,list1为合并后
代码:
1 list = ['a', 'b', 'c']2 list1 = [1, 2, 3, 4]3 print(list, type(list))4 list.append(2) #在list最后插入元素2
5 print(list, type(list))6 list.insert(2, 'da') #在list第三位插入元素da
7 print(list, type(list))8 list.extend(list1) #把list1的元素合并到list中
9 print(list, type(list))10 print(list1, type(list1))
运行结果:
3.查看列表中的元素
print(list)打印整个列表
print(list[n])查看下标索引为n的列表中的值,如果索引n不存在会报错
print(list.count(xx))查看列表中值为xx的元素的个数,如果该元素不存在,那么返回0
print(list.index(xx))找元素xx的索引值,如果有多个,返回第一个xx元素的索引值,如果元素xx不存在则会报错
代码:
1 list = ['a', 'b', 'c','a','ab']2 list1 = [1, 2, 3, 4]3 print(list)4 print(list[1])5 print(list.count('a'),list.count('d'))6 print(list.index('a'))
运行结果:
4.删除list中的元素
list.pop()删除最后一个元素
list.pop(n)删除指定索引的元素,如果该索引不存在则会报错
list.remove(xx)删除list的一个元素xx,如果有多个xx,删除第一个,如果不存在则报错
print(list.pop())有返回值
print(list.remove())无返回值
clear list情况list中的元素,list不能访问
代码:
1 list = ['a', 'b', 'c','a','ab']2 list1 = [1,2,3,4,6,1,5,3]3 print('list is:',list)4 print('list.pop() is:',list.pop())5 print('list is:',list)6 print('list.pop(1) is:',list.pop(1))7 print('list is:',list)8 print('list1.remove(1) is:',list1.remove(1))9 print('list1 is:',list1)10 print('list1 clear is:',list1.clear())11 print('list1 is:',list1)
运行结果:
5.排序和反转
list.reverse()将列表反转
list.sort()排序,默认升序
list.sort(reverse=True)降序排列
注意:list中有字符串,数字时不能排序,排序针对的同类型
代码:
1 list = ['a', 'b', 'c','a','ab']2 list1 = [1,2,3,4,6,1,5,3]3 print('list is:',list)4 list.reverse() #list元素反转5 print('list is:',list)6 print('list1 is:',list1)7 list1.sort() #list默认升序排列8 print('list1 is:',list1)9 list1.sort(reverse=True) #list降序排列10 print('list1 is:',list1)
运行结果:
6.列表操作函数
len(list):列表元素个数
max(list):返回列表元素的最大值
min(list):返回列表元素的最小值
list(seq):将元组转换为列表
enumerate用法,打印元素对应的下标
代码:
1 list = ['a', 'b', 'c','a','ab']2 list1 = [1,2,3,4,6,1,5,3]3 n =len(list)4 print('list 元素个数为:',n)5 print('list中max值:',max(list))6 print('list1中min值:',min(list1))7 for i, v inenumerate(list):8 print('index= %s ,value =%s'%(i,v))
运行结果:
7.list切片
切片(list取值方法)
name[n:m]切片是不包括后面那个元素的值(顾前不顾尾)
name[:m]如果切片前面值缺失,从头开始取值
name[n:]如果切换后面值缺失,取值到最后一个
name[:]如果前后值全部缺失,取全部
name[n:m:s] s:步长,s=2表示隔1个元素取一次
步长为正数,从左往右取
步长为负数,从右往左取
注意:切片同样适用于字符串
代码:
1 list = ['a', 'b', 'c','a','ab']2 list1 = [1,2,3,4,6,1,5,3]3 list2 = list[1:4]4 print('list2 is:',list2)5 list3 = list1[:3]6 print('list3 is:',list3)7 list4 = list1[2:]8 print('list4 is:',list4)9 list5 =list[:]10 print('list5 is:',list5)11 list6 = list1[4:1:-2]12 print('list6 is:',list6)13 list7 = list1[1:4:2]14 print('list7 is:',list7)
运行结果:
8、列表生产式
列表生产式既List Comprehensions,是Python内置创建list的生产式
实例1:生成list[1,2,3,4,5,6,7,8,9,10]可以用list(range(1,11)):list=list(range(1,11))
代码:
1 list = list(range(1,15))2 print('list is:',list)
实例2:生成list[1×1,2×2,3×3,4×4,5×5,6×6,7×7,8×8,9×9,10×10]可以用list = list(x*x for x in range(1,11))
代码:
1 list1 = list(x*x for x in range(1,11))2 print('list1 is:',list1)
实例3:for循环加判断:list = list(x*x for in range(1,11)if x%2 == 0)
1 list = list(x*x for x in range(1,11)if x%2 ==0)2 print('list is:',list)
实例4:使用两层循环
list = [m + n for m in 'ABC' for n in 'XYZ']
print(list)
输出结果:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
代码:
1 list = list(x+str(y) for x in 'ABCD' for y in range(1,7))2 print('list is:',list)
1 list1 = [m+n for m in 'ABC' for n in 'XYZ']2 print('list1 is:',list1)
实例5:列表数据加1
list = [1,3,5,7,9,11]
需要生成list1 = [2,4,6,8,10,12]
list1 = [i+1 for i in list]