python 学习笔记一 (数据结构和算法)
2018年刚刚过完年,从今天起,做一个认真的技术人。开始进入记笔记阶段。
python内置了很多数据结构,list , set,dictionary
1、将序列分解为单独的变量
1.1 通过赋值的方式,只要等号左右的变量个数与结构与序列一致
p=(4,5)
x,y=p
1.2不只是序列,只要是可迭代的对象,都可以进行分解
s='hello'
a,b,c,d,e = s
如果想丢弃某些变量, 可以选一个用不到的变量,作为丢弃值的名称。
data=['ABC', 50, (2012,1,2)]
_, price , _ = data , 这里用到的是下划线
records = [
('foo', 1, 2),
('bar', 'hello'),
('foo', 3, 4)
]
def do_foo(x, y ):
print ('foo', x, y)
for tag, *args in records:
if tag == 'foo':
do_foo(*args)
1.3 保存最后的几个变量
collections.deque
q = deque(maxlen=3),长度为3的一个队列
q.append(1)
q.append(2)
q.append(3)
q.append(4)
q.appendleft() 从左侧入参数, q.popleft(), q.pop()
from collections import deque
def search(lines, pattern , history =5 ):
previous_lines = deque(maxlen=history)
for line in lines:
if pattern in line:
yield line, previous_lines
previous_lines.append(line)
if __name__ == '__main__':
with open('some.txt') as f :
for line , previouslines in search(f, 'python', 5):
for pline in previouslines:
print(pline, end='& ')
print(line, end='% ')
print('-'*20)
1.4 找出最大或者最小的n个元素
import heapq
nums=[1,3,2,9,4,8,7,6]
smalllist = heapq.nsmallest(3,nums)
biglist = heapq.nlargest(3,nums)
1.5在list中可以经常用到一个列表推导式:
x = 'abcde'
y = 'hijkl'
comp = [(m,n) for m in x if m >'a' for n in y if n >'h']
map()
Iterable
map
Iterator
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY