python连载第十五篇~史上最全列表知识源码+答案

来源:互联网 发布:知乎 礼仪的重要性 编辑:程序博客网 时间:2024/06/18 17:08
#2017-12-19 19:34:41 December Tuesday the 51 week, the 353 day#python连载第十五篇~list列表#列表定义,访问,索引,操作,切片列表就是用中括号包围、逗号隔开的任何东西(称作元素element),没有数量,长度限制:用中括号[]加序号访问列表元素的方法就是索引index,索引就是列表元素所在的位置,索引从0 而不是1 开始,第二个元素索引为1,第三个索引为2,依次类推#python连载第十五篇~list列表#访问list中的元素list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]#这个列表中有6个元素,但是一般我们从0开始数,一直数到5。#也就是list1[0]的元素内容就是数字1,list1[5]元素内容就是"最近如何,亲?"list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]#可以用print函数直接输出这个列表print("该列表所有元素为:",list1)#访问第一个元素print("列表第一个元素为:",list1[0])#访问第二个元素print("列表第二个元素为:",list1[1])#访问第六个元素print("列表第六个元素为:",list1[5])#也可以用负数来调取列表中的元素。#list1[-1]表示列表中的最后一个元素。print("列表最后一个元素为:",list1[-1])#list1[-5]表示倒数第5个元素print("列表倒数第5个元素:",list1[-5])#也可以用for循环输出列表内容#for循环最擅长和列表配合搞事情for i in list1:print(i)#for循环做的事情其实就是遍历列表中的每一项,每次循环都把当前项赋值给一个变量(这里是i)并输出,直到列表结束#python连载第十五篇~list列表#修改,添加#修改列表中的元素#只需要直接给那个元素赋值就可以了:#给第一个元素赋值为512list1[0] = 512#赋值之后的列表内容print("现在list1变成了",list1)#向list中添加元素#append方法可以在列表最后面增加元素。list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]#python中append方法的使用技巧是在列表后面添加英语中的句号,然后添加append方法list1.append('最近很好呢~')print("向list列表中添加元素后:",list1)#python连载第十五篇~list列表各种删除方法#del()方法删除list中的元素,被删除的元素无法再被使用list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]#删除第一个元素del list1[0]print("删除列表中第一个元素后:",list1)#pop()方法删除list中的元素,被删除的元素还可以被使用list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]poped_list = list1.pop()#删除列表最后一个元素print("删除最后一个元素后的列表:",list1) print("被删除的元素:",poped_list)#弹出(删除)列表中的任意元素,只需在pop()中加入数字list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]poped_list = list1.pop(2)#删除列表最后一个元素print("删除第三个元素后的列表:",list1) print("被删除的第三个元素:",poped_list)#直接删除列表中的元素list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]love = 'i love you'list1.remove(love)print("删除指定元素后的列表:",list1)#被删除的元素还可以继续使用print("被删除的元素:",love)切片的含义就是从列表许多元素中取出你想要的部分,类似屠夫用刀从牛肉中随意剁出一块出来的感觉,具体的方法就是:在中括号[]内提供一对合适数字,用:分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片到哪里结束。注意,开始位置包含在切片中,而结束位置不包括。列表中第一个元素位置是0,第二个元素位置是1,以此类推#python连载第十五篇~list列表#列表的切片读取list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]#取出列表中的第3个,第四个,元素,不包含第五个元素print("列表第3,4个元素是:",list1[2:4])#如果不指定第一个数,切片就从列表第一个元素开始print("列表第1,2,3,4个元素是:",list1[:4])#如果不指定第二个数,就一直到最后一个元素结束print("列表第3个元素以后的内容是:",list1[2:])#不指定,则返回列表所有元素print("列表所有元素是:",list1[:])#同索引一样,切片中的数字也可以使用负数。比如print("列表第3个到倒数第二个元素:",list1[2:-2])#遍历切片print("前三个元素为:")for list1_1 in list1[:3]:print(list1_1)#python连载第十五篇~list列表列表排序 #下面列表中的元素是我在德国留学时候的室友,朋友list2 = ['johannes', 'romi', 'andre','martin']#列表永久按照字母表顺序排序,排序后不可撤销list2.sort()print("正序列表内容:",list2)#向sort()方法传递参数reverse=True可以让列表内容按照字母反方向顺序排序list2.sort(reverse=True)print("反序列表内容:",list2)#还可以用sorted()方法对列表临时排序list2 = ['johannes', 'romi', 'andre','martin']print("这是原始列表")print("原始列表:",list2)print("这是临时排序列表")print("临时正序列表:",sorted(list2))print("原始列表保持不变")print("原始列表:",list2)#倒着打印列表list2 = ['johannes', 'romi', 'andre','martin']list2.reverse()#反转方法print("反转列表:",list2)#确定列表长度list2 = ['johannes', 'romi', 'andre','martin']print("列表list2元素个数为:")print(len(list2))#python连载第十五篇~list列表列表中插入,复制#使用方法insert()可在列表的任何位置添加新元素。#只需要指定新元素的索引(位置)和值。在插入的位置右侧元素自动右移一个位置list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]list1.insert(4, 'Schatz德语宝贝的意思')print(list1)#复制列表list1 = ['汉语', '英语']list2 = list1list3 = list1[:]#[:]代表列表所有内容print("新名字:list2,旧列表:",list2)print("新名字:list3,旧列表:",list3)#python连载第十五篇~list列表列表加法,乘法,嵌套#列表可以做加法list1 = [1, '2', "3", "abc", "i love you", "最近如何,亲?"]list2 = ['johannes', 'romi', 'andre','martin']list3 = list1 + list2print("加法列表结果:",list3)#列表还可以做乘法list2 = ['johannes', 'romi', 'andre','martin']list4 = list2 * 2print("乘法列表结果:",list4)#列表嵌套,列表里面的元素还是列表list1 = [1, '2', ]list2 = ['johannes', 'romi']list5 = [list1, list2]print("列表嵌套结果:",list5)2017-12-23 15:14:10 December Saturday the 51 week, the 357 day#python连载第十五篇~list列表数字列表的玩法#for循环做的事情其实就是遍历一个列表中的每一项,#每次循环都把当前项赋值给一个变量(这里是i)并输出,直到列表结束#使用函数(函数和方法是一个意思,两者等价)range()创建一列数字for i in range(1, 5):print(i)#创建数值列表numbers = list(range(1,5))print("列表嵌套结果:",numbers)#指定步长求偶数,第一个2是起点,11是终点,最后一个2是数字的间隔,步长even_numbers = list(range(2,11,2))print("2到10之间的偶数:",even_numbers)#平方运算,在Python中,两个星号(**)表示乘方运算。#列表包含前10个整数的平方squares = []#建立空列表for value in range(1,11):#for循环输出1到10的数字square = value**2#给每个数字做平方运算squares.append(square)#把每个数字依次添加到空列表里面print("1到10的平方分别是:",squares)#打印出最终的列表numbers = list(range(1,5))print("列表元素内容为",numbers)#求数字列表最小值min_numbers = min(numbers)print("列表最小元素为:", min_numbers)#求数字列表最大值max_numbers = max(numbers)print("列表最大元素为:",max_numbers)#求数字列表元素之和sum_numbers = sum(numbers)print("列表数字元素之和为:",sum_numbers)2017-12-23 15:13:58 December Saturday the 51 week, the 357 day#python连载第十五篇~list列表常见系统错误整理#索引错误:列表索引元素号码要在元素里面,如果超出电脑会报错list2 = ['johannes', 'romi', 'andre','martin']print(list2[4])电脑报错如下:Traceback (most recent call last):#不用看,没啥意义  File "D:\Sublime_work_D\TF\TF_test.py", line 2, in <module>    print(list2[4])#错误代码所在位置行IndexError: list index out of range #索引错误:超出列表索引范围[Finished in 1.0s]#语法错误:for i in range(1, 10)print(i)  File "D:\Sublime_work_D\TF\TF_test.py", line 1    for i in range(1, 10)#指出错误在for循环的末尾,缺个分号                        ^SyntaxError: invalid syntax #语法错误:无效语法[Finished in 0.8s]#缩进错误举例#没有缩进for i in range(1, 10):print(i)运行后无法通过电脑检测,电脑返回如下:  File "D:\Sublime_work_D\TF\TF_test.py", line 2#文件在电脑中的位置    print(i)#错误所在位置        ^IndentationError: expected an indented block#缩进错误期望一个缩进模块[Finished in 1.8s with exit code 1]#不必要的缩进list2 = ['johannes', 'romi', 'andre','martin']print(list2[4])  File "D:\Sublime_work_D\TF\TF_test.py", line 3    print(list2[4])    ^IndentationError: unexpected indent   #缩进错误:超出预期的缩进,没必要缩进[Finished in 0.8s]建议大家积累常见错误,然后定期复习,避免重复犯错,对英语有压力的同学可以记住错误中的常见词,以后碰到新错误就能看懂电脑报错原因。把这个错误放进文件:python_problems.py 这句话是关键:IndexError: list index out of range,说明了错误原因是索引错误:IndexError最后关于列表还有大量操作,这里只是抛砖引玉,以后碰到了新用法,自己临时学习就行,做编程,最重要的品质就是学习能力和终生学习的意识。一旦放弃学习,很快就被时代抛弃家庭作业:用range方法和for循环实现1到10的平方squares = [value**2 for value in range(1,11)]print(squares)[1, 4, 9, 16, 25, 36, 49, 64, 81, 100][Finished in 1.7s]

原创粉丝点击