python数据结构list详解

列表详解

1.列表类型支持很多方法,列表对象对应的方法如下

1.1 list.append(x)

向列表末尾添加一个元素,相当于a[len[a]:]=x

1.2 list.extend(iterable)

由于可迭代对象的元素扩展列表,相当于a[len[a]:]=iterable

1.3 list.insert(i,x)

向指定位置插入元素,第一个参数是插入元素的索引,因此 a.insert(0,x)是向列表开头插入元素,a.insert(lent(a),x)是向列表末尾插入元素

1.4 list.remove(x)

从列表总删除第一个值为x的元素,未找到元素时,会触发ValueError异常

1.5 list.pop(i)

删除列表指定位置的元素,并返回指定的元素,未找到元素时,会删除并返回列表最后一个元素

1.6 list.clear()

删除列表所有元素,相当于 del a[:]

1.7 list.index(x,[start[,end]])

返回列表第一个值为x的零基索引,未找到元素时,会触发ValueError异常。
可选参数start,end是切片符号,用于的搜索位置限制为列表的特定子序列。返回的的
索引是相当于整个序列开始计算的,而不是start

1.8 list.count(x)

	返回列表总元素x出现的次数

1.9 list.sort(*,key=None,reverse)

就地排序列表总元素,(需要自定义排序参数,参考sorted())

1.10 list.reverse()

翻转列表中的元素

11.1 list.copy()

返回列表,相当于a[:]

2.列表实现其他结构

2.1 堆(后进先出)

stack=[1,2,4]
stack.append(5)
stact.append(7)
x=stack.pop() x=7
x1=stack.pop() x1=5

2.2 队列(先进先出)

stack=[1,2,4]
stack.append(5)
x=stack.popleft() x=1
x1=stack.popleft() x1=2

3 列表推导式

列表推导式的方挂号内包含一下内容:一个表达式,后面为一个for 子句,然后,是零个或多个for 或if 子句。结果是由表达式依据for 和if子句求值计算而得出一个新列表。

squares=list(map(lambda x:x**2,range(10)))
squares=[x**2 for x in range(10)]
[(x,y) for x in [1,2,4] for y in [3,1,4] if x !=y]

列表推导式可以使用复杂的表达式和嵌套韩素

from math import pi
[str(round(pi,i)) for i in range(1,6)]

嵌套的列表推导式

列表推导式中的初始表达式可以式任何表达式,甚至可以式宁一个列表推导式

matrix = [
	[1,2,3,4],
	[5,6,7,8],
	[9,10,11,12]
]
[[row[i] for row in matrix] for i in range(4)]
#等价于
transposed=[]
for i in range(4):
	transposed.append([row[i] for row in matrix])
print(transposed)
# 反过来说,也等价于
transposed2[]
for i in range(4):
	transposed2_row=[]
	for row in matrix:
		transposed2_row.append(row[i])
	transposed2.append(transposed2_row)
# 但在实际应用中,最好用内只函数代替复杂的流程语句。此时zip()函数更好用
	list(zip(*matrix))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值