文章目录
最近在看Python cookbook, 总结下书中的涉及部分比较骚的操作用例。仅作分享。
1. 解压赋值给多个变量
# 解压赋值可用在任何可迭代的对象上,包括列表、元组、字符串、文件对象、迭代器和生成器
p = (4, 5)
x, y = p
print(x, y)
data = ['ACMDE', 50, 9.11, (2012, 8, 3)]
name, shares, price, date = data
print(name, shares, price, date)
name, shares,price,(year,mon,day) = data
print(year, mon, day)
# 字符串
s = 'Hello'
a, b, c, d, e=s
print('字符串解压:', a, b, c, d, e)
# 部分解压
_, shares, price, _ = data
print('部分解压:',shares, price)
2. 解压可迭代对象赋值给多个变量
场景1:被解压元素不确定 - 星号表达式
场景2:利用废弃名称 _ 或ign , 丢弃被解压的元素 -
# *phones 的返回值,永远都是列表类型,哪怕元素个数是0个
record = ['Dave', 'Dave@gmail.com', '027-83912629', '027-91820129']
name, email, *phones = record
print(name, email, phones)
# *也可以放在前部。如查看 前6个月金额avg和当前月的比较
*before, current = [10, 8, 7, 9, 6]
avg1 = sum(before)/len(before)
print('前6个月的平均值:{},当前月值为:{}, 占比是:{}'.format(avg1, current, avg1/current))
3. 查找集合中最大/最小的N个元素-heap
heap模块的nlargest(), nsmallest()
import heapq
nums = [1, 8, 2, 23, 7, -4, 18