gpt4 book ai didi

python - 当可能没有足够的值来解包时,将列表值干净地分配给多个变量

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:26 28 4
gpt4 key购买 nike

例如,如果我想从 l = [1,2,3,4,5] 分配 a, b, c,我可以这样做

a, b, c = l[:3]

但如果 l 只是 [1,2](或 [1][] )?

有没有办法自动将其余变量设置为 None''0 或其他一些默认值?

我考虑过在分配之前使用默认值扩展列表以匹配变量的数量,但只是想知道是否有更好的方法。

最佳答案

通常,要将大小为 M 的列表中的 N 个元素解压缩为 N 个单独的变量,其中 M <= N,然后您可以将列表切片填充到 N 并再次切片:

l = [1,]
a, b, c = (l[:3] + [None]*3)[:3]

a, b, c
# 1, None, None

如果您喜欢一种干净的基于生成器的方法,这也行得通:

from itertools import islice, cycle, chain

def pad(seq, filler=None):
yield from chain(seq, cycle([filler]))

a, b, c = islice(pad([1, ]), 3)
a, b, c
# 1, None, None

关于python - 当可能没有足够的值来解包时,将列表值干净地分配给多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692191/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com