当前位置: 首页 > 后端技术 > Python

小白学习Python(十):基本数据结构(列表)(下)

时间:2023-03-25 20:03:46 Python

人生苦短,我选择Python上一篇传送门小白学习Python(一):入门小白学习Python(二):基本数据类型(顶)小白小白学习Python(三):基本数据类型(下)小白学习Python(四):变量的基本操作小白学习Python(五):基本运算符(上)小白学习Python(六):基本运算符(下)初学Python(七):基本过程控制(上)初学Python(八):基本过程控制(二)初学Python(九):基本数据结构(表)(上)Listslicing说到列表切片,不知道大家还记得我们之前讲过的字符串切片吗。想不起来,为自己的记忆默哀3秒。开个玩笑:)你可以回去看看之前的文章。列表切片意味着切掉列表的一部分。语法:list[startindex:endindex:stepinterval]注意:这里的结束索引和字符串切片一样,不会被检索。直接看下面的代码,解析已经在注释里加上了。其实我比较懒,不想拆开一个一个写,快来打我~~~list1=[0,1,2,3,4,5,6,7,8,9]#省略步长时,默认为1print(list1[3:8])#步长为2print(list1[3:8:2])#从索引3到末尾获取print(list1[3:])#从头开始,到达索引8,而索引8不可用print(list1[:8])#全部取走,步长为3print(list1[::3])#开始从index1开始,取倒数第二个,取倒数第二个到print(list1[1:-2])#takeallprint(list1[:])#取倒序listprint(list1[::-1])#取反序,步长为2print(list1[8:1:-2])执行结果如下:[3,4,5,6,7][3,5,7][3,4,5,6,7,8,9][0,1,2,3,4,5,6,7][0,3,6,9][1,2,3,4,5,6,7][0,1,2,3,4,5,6,7,8,9][9,8,7,6,5,4,3,2,1,0][8,6,4,2]下面是列表的常用方法:list.append(obj)在列表末尾添加一个新对象list1.append("Python")print(list1)结果如下:[0,1,2,3,4,5,6,7,8,9,'Python']list.count(obj)统计某个元素出现的次数在列表list2=[0,1,2,3,4,5,6,7,8,9]list2.append("Python")list2.append("Python")list2.append("Python")list2.append(1)print(list2.count("Python"))print(list2.count(1))结果如下:32我们统计了字符串“Python”和数字1出现的次数.list.extend(seq)在列表末尾一次附加另一个序列中的多个值(用新列表扩展原始列表)list1.extend(list2)print(list1)结果如下:[0,1,2,3,4,5,6,7,8,9,'蟒蛇',0,1,2,3,4,5,6,7,8,9,'蟒蛇','蟒蛇','Python',1]可以看到list1包含了list2展开后list1和list2的所有数据。extend与append非常相似,但extend一次只能添加一个列表,而append一次只能添加一个元素。list.index(obj)从列表中找出一个值的第一个匹配的索引位置print(list1.index("Python"))结果如下:10list.insert(index,obj)将对象插入到列表索引是要插入的索引值,其中obj是要插入的元素。list1.insert(0,"Hello")print(list1)list3=[0,1,2]list4=[2,2]list3.insert(1,list4)print(list3)结果如下:['Hello',0,1,2,3,4,5,6,7,8,9,'蟒蛇',0,1,2,3,4,5,6,7,8,9,'蟒蛇','Python'','Python',1][0,[2,2],1,2]当然插入的时候可以是单个元素,也可以是列表。list.pop([index=-1])移除列表中的一个元素(默认为最后一个元素),并返回该元素的值list3.pop()print(list3)list3.pop(1)print(list3)结果如下:[0,[2,2],1][0,1]同样在移除索引的时候,可以移除一个元素或者一个列表。list.remove(obj)删除列表中第一个出现的值list5=[1,2,3,4,4,5]list5.remove(4)print(list5)结果如下:[1,2,3,4,5]list.reverse()list5.reverse()print(list5)在反向列表中的结果如下:[5,4,3,2,1]虽然我们只是使用了一个步长-1形式也实现了列表的倒序,只是两者的操作不同。list5=[1,2,3,4,4,5]list5.remove(4)print(list5)print(id(list5))list5.reverse()print(list5)print(id(list5))print(id(list5[::-1]))结果如下:[1,2,3,4,5]2629333420040[5,4,3,2,1]26293334200402629333420104同学明白了,通过倒序得到stepsizelist其实是一个新的list,内存地址变了,但是list.reverse()打印出来的reverselist还是list本身,它的内存地址没有变。list.sort(key=None,reverse=False)对原始列表进行排序list6=[2,5,1,9,6,3]list6.sort()print(list6)list6.sort(reverse=True)print(list6)结果如下:[1,2,3,5,6,9][9,6,5,3,2,1]怎么样,把list正反序排列好不好?后面还有另外两个方法list.clear()(清空列表)和list.copy()(复制列表)。我不会演示它。你可以自己试试。不清楚的可以在公众号后台留言一、示例代码本系列所有代码编辑器都会放在代码管理仓库Github和Gitee上,方便大家使用。示例代码-Github示例代码-Gitee如果我的文章对你有帮助,请扫码关注作者的公众号:获取最新干货推送:)