python列表内置函数


前言

列表list是python常用的数据集合类型,这里且做一个入门级教程。
一位初学者应该对照生活来理解编程,并养成上机演练逐步掌握编程知识习惯。


一、列表的形象和本质

list[3,4,5]可以看作下图结构。

索引2
5
索引1
4
索引0
3

列表是有序的一组数据。
有序是指通过索引(数据位置从左到右,索引数值从小到大一一相应指向数据位置),python规定索引号从0开始。

有序分为正序和反序(正序:序号按照从左到右方向,索引号数值从小到大;反序后面详细介绍)

索引(索引号标识数据的位置,操作数据的凭借)

二、列表的内置函数

列表list内置函数从便利角度来思考就容易理解每个函数意义。

1.append(x)

append(x) 把数值加到列表尾端。

list1 = ['beijing', 'shanghai']
list1.append('guangzhou')
print(list1)
# 结果是
# ['beijing', 'shanghai', 'guangzhou']
list1 = ['beijing', 'shanghai']
索引1
shanghai
索引0
beijing
进行list1.append('guangzhou')后
索引2
guangzhou
索引1
shanghai
索引0
beijing

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']
索引1
shanghai
索引0
beijing
把['guangzhou']插入索引1位置上,后面按序重新编号。
索引2
shanghai
索引1
guangzhou
索引0
beijing

3.反序的应用

列表是有序的一组数据。正序和反序是两种对位置(索引)表达方法。
正序从头部从左到右依次0,1,2…
反序从尾部从右到左依次-1,-2,-3…
为啥搞个反序,当然是方便实际操作。都按正序来,你得先数数,比如列表有100个元素时候…

索引2
guangzhou
索引1
shanghai
索引0
beijing
索引-1
guangzhou
索引-2
shanghai
索引-3
beijing
#索引有正序和反序的应用,规定倒数第一索引号是-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()返回列表的浅复制。

总结

古话说,慎始能善终,坚持学习,积少成多,如果难,走下去就好。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值