Python3自学笔记 <五>

数据结构

参考菜鸟教程https://www.runoob.com/python3/python3-tutorial.html

把列表当作堆栈使用

append()方法实现入栈; 用pop()方法实现出栈

stack=[2, 3, 4, 5]
stack.append(6)				#[2, 3, 4, 5, 6]
stack.pop()					#[2, 3, 4, 5]

列表推导式

类似数学中集合的描述法

L1 = [1, 3, 5]
L2 = [2, 4, 6]
[3*x for x in L1]					#[3, 9, 15]
[[x, -x] for x in L1]				#[[1, -1], [3, -3], [5, -5]]
[x**x for x in L1 if x>1]			#[27, 3125]
[[x, y] for x in L1 for y in L2]	#[[1, 2], [1, 4], [1, 6], [3, 2], [3, 4], [3, 6], [5, 2], [5, 4], [5, 6]]

嵌套列表

将4*3的矩阵转化为3*4的矩阵
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 1, 4]]
print([[row[i] for row in matrix] for i in range(3)])

遍历技巧

在字典中遍历, 可以使用items()方法将关键字和对应的值同时解读出来

info = {'张三': '15', '李四': '18', '王五': '20'}
for x, y in info.items():
	print(x, y)
#张三 15
#李四 18
#王五 20

在序列中遍历时, 索引位置和对应值可以使用enumerate()同时得到

L = ['张三', '李四', '王五']
for x, y in enumerate(L):
	print(x, y)
#0 张三
#1 李四
#2 王五

同时遍历两个或更多序列, 可以使用zip()组合

L1 = [1, 2, 3]
L2 = [4, 5, 6, 7]
L3 = [8, 9]
for x, y, z in zip(L1, L2, L3):
	print(x, y, z)
#1 4 8
#2 5 9

要按顺序遍历一个序列, 可以使用sorted()函数返回一个有序的序列, 且不会修改原序列

L = [1, 2, 3, 6, 5, 4]
for i in sorted(L):
    print(i, end=" ")
print()
for i in L:
    print(i, end=" ")
#1 2 3 4 5 6
#1 2 3 6 5 4 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值