L15-Python cookbook 数据结构与算法练习题

这篇博客探讨了Python中的数据结构和算法应用,包括解压赋值给多个变量、查找集合中最大/最小元素、使用defaultdict处理多值映射、对字典进行排序以及合并字典等实用技巧,详细讲解了各种场景的实现方法。
摘要由CSDN通过智能技术生成


最近在看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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值