python基础汇总

这篇博客是作者的Python学习笔记,涵盖了序列拆分、任意长可迭代对象分解、deque的运用和yield的功能解释,旨在每日更新纯Python知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇是个人python的学习笔记,收集包括但不限于各类书籍和项目中需要使用的纯python知识。

争取每日更新。

1. 序列拆分为独立变量

任何可迭代对象可以通过赋值拆分为独立变量

p = (4, 5)
x, y = p

数量不匹配会报错误

ValueError:need more than xx values to unpack

2. 任意长可迭代对象中分解元素

如果可迭代对象长度大于需要分解出的N个元素,会报分解值过多错误(too many value to unpack),这个时候可以使用 *表达式解决问题

first, *middle, last = range(10)
print(first)
print(*middle)
print(last)

输出:
0
1 2 3 4 5 6 7 8
9

一个递归算法:

def sum_(items):
    head, *tail = items
    return head + sum_(tail) if tail else head

print(sum_([1, 2, 3, 4, 5]))

输出:
15

3. 使用deque保留最近记录

collections.deque可以模拟简单队列,实现类似功能

from collections import deque

q = deque(maxlen=3)
q.append(1)
q.append(2)
q.append(3)
print(q)
q.append(4)
print(q)
q.appendleft(0)
print(q)

输出
deque([1, 2, 3], maxlen=3)
deque([2, 3, 4], maxlen=3)
deque([0, 2, 3], maxlen=3)

相较于列表更多的操作是支持两端操作,比如添加或者弹出

4. yield的使用

实现yield的函数为生成器

def test():
    print("starting:")
    i, j = 0, 0
    while 1:
        print('i=', i)
        i += 1
        yield i
        print('j=', j)
        j += 1
        yield j

t = test()
print(next(t))
print('-'*5)
print(next(t))
print('-'*5)
print(next(t))
print('-'*5)
print(next(t))
print('-'*5)
print(next(t))

输出:
starting:
i= 0
1
-----
j= 0
1
-----
i= 1
2
-----
j= 1
2
-----
i= 2
3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值