随笔 - 33  文章 - 0  评论 - 0  阅读 - 6459

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)

 

posted on   Delphi搬运工  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示