gpt4 book ai didi

2.7版的Python星解包

转载 作者:IT老高 更新时间:2023-10-28 21:52:18 25 4
gpt4 key购买 nike

如前所述 here ,您可以使用星号解包未知数量的变量(如在函数中),但仅限于 python 3:

>>> a, *b = (1, 2, 3)
>>> b
[2, 3]
>>> a, *b = (1,)
>>> b
[]

在 python 2.7 中,我能想到的最好的方法是(不可怕,但很烦人):

c = (1, 2, 3)
a, b = c[0], c[1:] if len(c) > 1 else []

有没有办法像除法一样从 __future__ 导入它,还是我需要自己的函数在 python 2.7 中进行未知长度的解包?

最佳答案

在 python 2.X 中,你可以这样做:

c = (1, 2, 3)
a, b = c[0], c[1:]

只要 c 至少有一个成员,它就会起作用,因为如果 c 里面只有 1 个东西 c[1:][].

你可能应该确保 c 中至少有一个东西,否则 c[0] 会引发异常。

你可以这样做:

try:
c = tuple(c)
a, b = c[0], c[1:]
except TypeError, IndexError:
# c is not iterable, or c is iterable, but it doesn't have any stuff in it.
# do something else
pass

关于2.7版的Python星解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10792970/

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