# 第三节 列表与元组# 一、列表与列表定义grade = [90,100,89,98,99]print('分数:',grade)print('grade[3]=',grade[3],'grade[-2]=',grade[-2]) # grade[正向索引]=grade[-(len(g)-正向索引)]grade2=[100,90,89]grade3 = [grade,grade2]print('grade3:',grade3)# 输出结果'''分数: [90, 100, 89, 98, 99]grade[3]= 98 grade[-2]= 98grade3: [[90, 100, 89, 98, 99], [100, 90, 89]]'''# 列子1:根据输入的数字,输出对应的月份信息。如输入"6",则输出"It’s June."months = ["January","February","March","April","May","June","July","August","September","October","November","December"]m = eval(input('请输入月份:'))print("It's",months[m-1])# 输出结果:'''请输入月份:6It's June'''# 二、操作列表元素x = ["马云","马化腾","胡歌"]x[0]="郭汉林"print(x)x[0],x[1]=x[1],x[0]print(x)#1、尾部追加元素——append方法x.append("马云")print('x.append("马云"):',x)#2、指定位置插入元素——insert方法x.insert(4,"张一鸣")print('x.insert(4,"张一鸣"):',x)#输出结果:'''['郭汉林', '马化腾', '胡歌']['马化腾', '郭汉林', '胡歌']x.append("马云"): ['马化腾', '郭汉林', '胡歌', '马云']x.insert(4,"张一鸣"): ['马化腾', '郭汉林', '胡歌', '马云', '张一鸣']'''m =["马云","马化腾","胡歌","郭汉林","刘亦菲","张一鸣"]#3、按索引删除元素——del命令del m[2]print('del m[2]:',m)#4、按索引删除元素——pop方法 缺省索引参数时,pop默认删除最后一个元素m.pop(-1)print('m.pop(-1):',m)#5、按值删除元素——remove方法 列表中包含多个待删除元素时,remove删除索引值相对较小的那个(s[0]='a',s[3]='a'会先删除s[0])m.remove("刘亦菲")print('m.remove("刘亦菲"):',m)#输出结果:'''del m[2]: ['马云', '马化腾', '郭汉林', '刘亦菲', '张一鸣']m.pop(-1): ['马云', '马化腾', '郭汉林', '刘亦菲']m.remove("刘亦菲"): ['马云', '马化腾', '郭汉林']'''# (二)、常用操作 :#1、len函数 len(列表)#统计和返回指定列表的长度,即列表中元素的个数boss =["马云","马化腾","胡歌","郭汉林","张一鸣"]print("len(boss):",len(boss))#2、in运算 和 not in运算 元素 in(not in)列表# 用来判断指定的元素是否在列表中print('in:',"胡歌" in boss)print('not in:',"胡歌" not in boss)#3、index方法 列表.index(元素)# 用来在列表中查找指定的元素,如果找到返回第一个元素对应的索引;如果找不到,会直接报错。print("boss.index('元素'):",boss.index("胡歌"))#4、count方法 列表.count(元素)# 用来统计并返回列表中指定元素的个数print("boss.count('元素'):",boss.count("胡歌"))#输出结果:'''len(boss): 5in: Truenot in: Falseboss.index('元素'): 2boss.count('元素'): 1'''# (三)、遍历列表# 1、 使用range函数遍历列表。leader =["马云","马化腾","胡歌","郭汉林","张一鸣"]print('range(len(leader)):',range(len(leader))) #修改range函数的参数,可以灵活访问列表的部分元素print('range(3):',range(3))for i in range(len(leader)):print(i,":",end='')print(leader[i])# 输出结果:'''range(len(leader)): range(0, 5)range(3): range(0, 3)0 :马云1 :马化腾2 :胡歌3 :郭汉林4 :张一鸣'''# 2、直接的元素遍历。gust =["马云","马化腾","胡歌","郭汉林","张一鸣"]for i in gust :print(i)# 输出结果:'''马云马化腾胡歌郭汉林张一鸣'''# (三)、列表排序:# 1、sort方法排序。 缺省参数的sort方法默认对列表元素按升序排序 嵌套结构的列表默认元素的第一个子元素为关键字按升序排序age =[12,13,24,26]age.sortprint(age)'''[12, 13, 24, 26]'''man = [[2,12],[4,26],[12,28],[3,18]]man.sort()print(man)'''[[2, 12], [3, 18], [4, 26], [12, 28]]'''# reverse参数为"True"时对列表元素按降序排序age.sort(reverse=True)print(age)'''[26, 24, 13, 12]'''man.sort(reverse=True)print(man)'''[[12, 28], [4, 26], [3, 18], [2, 12]]'''# 2、sorted函数排序。 sorted命令的使用和参数含义和sort方法一致。但sorted命令生成新的有序列表,不改变原来的列表。ls = [5,4,3,2,1]lh = sorted(ls)print('lh:',lh)print(ls)'''lh: [1, 2, 3, 4, 5][5, 4, 3, 2, 1]'''ls = [[2,12],[4,26],[12,28],[3,18]]lh = sorted(ls,reverse=True)print('ls:',ls)print('lh:',lh)'''ls: [[2, 12], [4, 26], [12, 28], [3, 18]]lh: [[12, 28], [4, 26], [3, 18], [2, 12]]'''# 四、列表切片 列表[起始索引 :终止索引 :n]# 字符串中关于索引和切片方式的规定都适用于列表切片。gust =["马云","马化腾","胡歌","郭汉林","张一鸣"]print('gust[0,1]',gust[0:1]) # 左闭右开print('gust[-1:-3:-2]:',gust[-1:-3:-2]) # 反向寻找,间隔一个(步长为2)'''gust[0,1] ['马云']gust[-1:-3:-2]: ['张一鸣']'''# 五、列表扩充#1、 A+B "+"运算将两个列表连接生成一个新列表,而不改变参与运算的列表本身。boss =["马云","马化腾","胡歌","郭汉林","张一鸣"]ls = [5,4,3,2,1]print('boss+ls:',boss+ls)'''boss+ls: ['马云', '马化腾', '胡歌', '郭汉林', '张一鸣', 5, 4, 3, 2, 1]'''# 2、extend方法 ,将参数列表添加至原列表中.boss =["马云","马化腾","胡歌","郭汉林","张一鸣"]ls = [5,4,3,2,1]boss.extend(ls)print("boss.extend(ls):",boss)'''boss.extend(ls): ['马云', '马化腾', '胡歌', '郭汉林', '张一鸣', 5, 4, 3, 2, 1]'''# 3、"*"运算 ,通过重复指定遍数扩充列表长度,与"+"运算类似,"*"运算也生成新列表、而不改变参与运算的列表本身。boss =["马云","马化腾","胡歌","郭汉林","张一鸣"]bosses = boss*2print('bosses:',bosses)'''bosses: ['马云', '马化腾', '胡歌', '郭汉林', '张一鸣', '马云', '马化腾', '胡歌', '郭汉林', '张一鸣']'''del boss[2]print('boss:',boss)print('bosses:',bosses)'''boss: ['马云', '马化腾', '郭汉林', '张一鸣']bosses: ['马云', '马化腾', '胡歌', '郭汉林', '张一鸣', '马云', '马化腾', '胡歌', '郭汉林', '张一鸣']'''# 六、列表的清空:del bosses[:]、列表的删除:del bosses、Clear方法del bosses[:]print('type(bosses):',type(bosses))'''type(bosses): <class 'list'>'''del bosses# print('bosses:',bosses)# 报错: NameError: name 'bosses' is not definedboss.clear()print('boss:',boss)'''boss: []'''# 七、 数值列表# 1、数值列表的创建ls = input("请输入一个列表:\n")print(ls)print(type(ls))'''请输入一个列表:1,2,3,4,51,2,3,4,5<class 'str'>请输入一个列表:[1,2,3,4,5][1,2,3,4,5]<class 'str'>'''# 说明:不管以何种形式输入,input函数都默认从键盘输入的是字符串。ls = eval(input("请输入一个列表:\n"))print(ls)print(type(ls))'''请输入一个列表:[1,2,3,4,5][1, 2, 3, 4, 5]<class 'list'>'''#说明:eval函数能将带"[]"的输入转换为列表。# 2、通过list函数转换r = range(1,3)print("r:",r)print(type(r))'''r: range(1, 3)<class 'range'>'''ls = list(r)print('ls:',ls)print(type(ls))'''ls: [1, 2]<class 'list'>'''# 例子:创建一个由1〜10这十个数的平方值组成的数值列表num =[]for i in range(1,11) :num.append(i**2)print('num:',num)'''num: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]'''# 列表 = [循环变量相关表达式 for 循环变量 in range函数] *****# print('range[3]:',range[3]) 报错:TypeError: 'type' object is not subscriptablels1 = [x for x in range(3)]print('ls1:',ls1)ls2 = [x*2 for x in range(3)]print('ls2:',ls2)ls3 = [x for x in ls2 if x<4]print('ls3:',ls3)'''ls1: [0, 1, 2]ls2: [0, 2, 4]ls3: [0, 2]'''# 列表嵌套ln =[] #定义一个ln列表for i in range(1,3) :for j in range(1,4) :ln.append(i*j) #ln使用前要先定义print('嵌套循环生成列表:',ln)'''嵌套循环生成列表: [1, 2, 3, 2, 4, 6]'''ln2=[i*j for i in range(1,3) for j in range(1,4)]print("ln2:",ln2)'''ln2: [1, 2, 3, 2, 4, 6]'''# 用数字生成九九乘法表for i in range(1,10):for j in range(1,i+1):print(i,'*',j,'=',i*j," ",end='')print('')'''1 * 1 = 12 * 1 = 2 2 * 2 = 43 * 1 = 3 3 * 2 = 6 3 * 3 = 94 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 165 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 256 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 367 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 498 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 649 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81'''# 用列表生成九九乘法表#la = [i,"*",j,"=",i*j,('\n' if i==j else ' ')# for i in range(1,10) for j in range(1,i+1)]la = [str(i) + '*' + str(j) + '=' + str(i*j) + ('\n' if i==j else ' ')for i in range(1,10) for j in range(1,i+1)]for x in la :print(x,end='')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。