python实用小技之数据结构

本文介绍了Python中关于数据结构的一些实用技巧,包括解压序列和可迭代对象赋值,保留有限历史记录的方法,如何从集合中获取N个最大或最小元素,字典的排序、键映射多个值以及进行各种计算操作如求最小值、最大值和排序等。
摘要由CSDN通过智能技术生成


本文大多数例子搬自 python cookbook 这里是对学习的一个总结和提炼
ps:python版本为python3

1.解压序列赋值给多个变量

# 有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量?
data = ['ACME', 50, 91.1, (2012, 12, 21)]
# 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量
# 变量的数量必须跟序列元素的数量是一样的
name, shares, prices, date = data
print(name, shares, prices, date, sep=" | ", end="\n")
# 如果只需要一部分,可以给个占位变量如
_, sha, pr, _ = data
print(sha,pr,sep=' | ')
运行结果:
ACME | 50 | 91.1 | (2012, 12, 21)
50 | 91.1

2.解压可迭代对象赋值给多个变量

# 解压可迭代对象赋值给多个变量
def drop_frist_last(grades):
    frist, *middle, last = grades
    return sum(middle) / len(middle)
print(drop_frist_last([0, 60, 70, 80, 100]))

# 有时候,你想解压一些元素后丢弃它们,可以使用 比如 _ 或者 ign
record = ('ACME', 50, 123.45, (12, 18, 2012))
name,*_,(*_,year) = record
print(name,year)
运行结果:
70.0
ACME 2012

3.保留有限的历史记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值