Python中列表的使用
列表是可变的,它跟字符串和元组最重要的区别:列表可以修改,而字符串和元组不能。
列表的方法:
list.append(x):把一个元素添加到列表的结尾。
list.extend(L):通过添加指定列表的所有元素来扩充列表。
list.insert(i,x):在指定位置插入一个元素,例如 a.insert(0,x)会把x插入到整个列表之前。
list.remove(x):删除列表中值为x的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i]):从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。
list.clear():移除列表中所有项,等于del a[:]。
list.index(x):返回列表中第一个值为x的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x):返回x在列表中出现的次数。
list.sort():对列表中的元素进行排序。
list.reverse():倒排列表中的元素。
list.copy():返回列表的浅复制。
对于仓库的先进先出的实现:
a=[]
x1='产品1'
....
xn='产品n'
a.append(x) #添加商品进列表,在结尾
.....
a.append(xn)
if xn in a:
a.remove(xn)
1.将列表当作堆栈使用:
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后被释放(后进先出)。用append()方法可以把一个元素添加到堆栈顶。用不指定索引的pop()方法可以把一个元素从堆栈顶释放出来。
例如:
stack=[3,4,5]
stack.append(6) #进栈
stack.append(7) #进栈
stack.pop() #出栈
2.将列表当作队列使用:
也可以把列表当作队列用,只是在队列里第一加入的元素,第一个取出来(先进先出);但是拿列表用作这样的目的效果不高。在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。
from collections import deque
queue=deque(['a','b','c'])
queue.append('c')
queue.append('d')
queue.popleft()
queue.popleft()
3.列表推导式
列表推导式提供了从序列创建列表得简单途径。通常应用程序将一些操作应用于某个序列得每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
每个列表推导式都在for之后跟一个表达式,然后有零到多个for或if字句。返回结果是一个根据表达从其后的for和if上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。
例如:
vec=[2,4,6]
vec1=[3*x for x in vec]
print(vec1) # [6,12,18]
vec2=[[x,x**2] for x in vec]
print(vec2) # [[2,4],[4,16],[6,36]]
# 可以用if字句作为过滤器:
vec3=[3*x for x in vec if x>3]
print(vec3) # [12,18]
#对序列里每一个元素逐个调用某方法
freshfruit=['banana','loganberry','passion fruit']
freshfruit1=[weapon.strip() for weapon in freshfruit]
print(freshfruit1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?