文章目录
前言
列表list是python常用的数据集合类型,这里且做一个入门级教程。
一位初学者应该对照生活来理解编程,并养成上机演练逐步掌握编程知识习惯。
一、列表的形象和本质
list[3,4,5]可以看作下图结构。
列表是有序的一组数据。
有序是指通过索引(数据位置从左到右,索引数值从小到大一一相应指向数据位置),python规定索引号从0开始。
有序分为正序和反序(正序:序号按照从左到右方向,索引号数值从小到大;反序后面详细介绍)
索引(索引号标识数据的位置,操作数据的凭借)
二、列表的内置函数
列表list内置函数从便利角度来思考就容易理解每个函数意义。
1.append(x)
append(x) 把数值加到列表尾端。
list1 = ['beijing', 'shanghai']
list1.append('guangzhou')
print(list1)
# 结果是
# ['beijing', 'shanghai', 'guangzhou']
list1 = ['beijing', 'shanghai']
进行list1.append('guangzhou')后
2.insert(index,x)
记住:索引是从0开始.
insert(index,x),把元素x插到index位置,后面按序重新编索引号。
#在1位置插入'guangzhou'
list1 = ['beijing', 'shanghai']
list1.insert(1, 'guangzhou')
print(list1)
# 结果是
# ['beijing', 'guangzhou', 'shanghai']
list1 = ['beijing', 'shanghai']
把['guangzhou']插入索引1位置上,后面按序重新编号。
3.反序的应用
列表是有序的一组数据。正序和反序是两种对位置(索引)表达方法。
正序从头部从左到右依次0,1,2…
反序从尾部从右到左依次-1,-2,-3…
为啥搞个反序,当然是方便实际操作。都按正序来,你得先数数,比如列表有100个元素时候…
#索引有正序和反序的应用,规定倒数第一索引号是-1。
list1 = ['beijing', 'shanghai', 'guangzhou']
list1.insert(-1, 'shenzhen')
print(list1)
# 结果是
# ['beijing', 'shanghai', 'shenzhen', 'guangzhou']
这个如果理解有困难,把插入过程形象捋一下就清楚了:首先找到插入位置如-1位置,从-1位置断开列表为两段,[‘beijing’, ‘shanghai’] 和[‘guangzhou’],[‘beijing’, ‘shanghai’] 接上[‘shenzhen’]接上[‘guangzhou’],重新编号。
4.remove(x)、pop(index)、clear()
remove(x),按数据内容删除;这里特别演示有两个’shanghai’,但是只删除前面‘shanghai’,remove(x)规定只删除前面第一个X内容元素。
#将'shanghai'中删除
list1 = ['beijing', 'shanghai', 'shenzhen', 'shanghai']
list1.remove('shanghai')
print(list1)
# 结果是
# ['beijing', 'shenzhen', 'shanghai']
pop(index)按索引号(位置)删除,pop我理解为弹出,有返回值为了知道弹出(删除)是什么元素。这里规定pop()等同pop(-1)默认弹出(删除)列表最后一个元素,这是反序索引应用。
#将索引号1的元素删除并返回
list1=['beijing','shanghai']
chengshi=list1.pop(1)
print(chengshi)
print(list1)
# 结果是
# shanghai
# ['beijing']
clear()就是一个大号remove()清空列表元素,使其变成空列表。
#清除list内容,但是保留list,变成一个空对象
list1=['beijing', 'shanghai']
list1.clear()
print(list1)
list1.append('guangzhou')
print(list1)
# 结果是
# []
# ['guangzhou']
5、其他函数extend(list)、index(x)、count(x)、reverse()和sort(key=none, reverse=False)
extend(list)把另外列表元素加到本列表。
反向思考:如果没有这个函数,而你就需要从一个列表把数据取出来然后append到另外一个列表。
# extend(x)将列表List2中元素追加至列表list1尾部
list1 = ['beijing', 'shanghai']
list2 = ['guangzhou']
# list1.extend(list2)
# 其实也可以使用加号实现。稍微注解掉语句,切换一下运行验证
list1 = list1 + list2
print(list1)
# 结果是
# ['beijing', 'shanghai', 'guangzhou']
index(x)查找元素,找到前面第一个元素的索引号并返回。
你想你查数据后,一是想知道它有没有这个数据,二是你查到这个数据可能会去进行操作,要操作肯定得知道它的索引号(位置)。
#index(x)返回前面第一个元素的索引
list1 = ['beijing', 'shanghai', 'shenzhen', 'shanghai']
index1 = list1.index('shanghai')
print(index1)
# 结果是
# 1
count(x)统计某个数据出现次数。
反向思考:如果没有这个函数,不得自己编程遍历一遍,所以phthon直接提供count(x)函数。
#count(x)统计x出现次数
list1 = ['beijing', 'shanghai', 'beijing', 'shanghai']
num = list1.count('beijing')
print(num)
print(list1)
# 结果是
# 2
# ['beijing', 'shanghai', 'beijing', 'shanghai']
reverse()是倒序操作即原地反转,sort()是排序,reverse参数默认False表示升序。
两个方法界限非常清楚。
#reverse()是倒序,sort是排序
list1 = ['beijing', 'shanghai']
list2 = ['beijing', 'shanghai']
list1.reverse()
print(list1)
list2.sort()
print(list2)
# 结果是
# ['shanghai', 'beijing']
# ['beijing', 'shanghai']
6、操作方法完整说明(内置函数)仅用于查找
仅作为查阅需要,千万不要记忆这些说明。
方法 | 说明(x代表数值,index代表索引,L代表列表) |
---|---|
append(x) | 将x追加列表尾部 |
extend(L) | 将列表L中所有元素追加至列表尾部 |
insert(index,x)简单理解 | 在列表index位置处插入x |
insert(index,x)完整说明 | 在列表index位置处插入x,该位置后面的所有元素后移动并且在列表中的索引加1,如果index为正数且大于列表长度则在列表尾部追加x,如果index为负数且小于列表长度的相反数则在列表头部插入元素x。 |
反序 | 列表的位置表达有两种,第一种是正序:从头部从左(前)到右(后)依次0,1,2…;第二种是反序:从尾部从右(后)到左(前)依次-1,-2,-3… |
remove(x) | 在列表中删除第一个值为x的元素,该元素滞后所有元素前移并且索引减去1,如果列表不存在x,则抛出异常。 |
pop(index) | 删除并返回列表索引号为index的元素,如果不指定index则默认为-1,即弹出最后一个元素;如果弹出中间位置的元素则后面的元素索引减1;如果index不是[-L,L]区间的整数则抛出异常。 |
clear() | 清空列表,删除列表中所有元素,保留列表对象。 |
index() | 返回列表第一值为x的元素的索引,若不存在则抛出异常。 |
count(x) | 返回列表值为X元素的出现的次数。 |
reverse() | 对列表所有元素原地逆序,首尾交换。 |
sort(key=none, reverse=False) | 对列表中元素进行原地排序,key用来装订排序规则,reverse默认是False表示升序,True表示降序。 |
copy() | 返回列表的浅复制。 |
总结
古话说,慎始能善终,坚持学习,积少成多,如果难,走下去就好。