gpt4 book ai didi

python - 使用 * 将值打包到元组中,就像函数参数打包一样

转载 作者:行者123 更新时间:2023-12-02 09:35:37 25 4
gpt4 key购买 nike

考虑一个定义为的函数:

def fun(a, *args):
print(type(args), args)

调用时,它将额外的位置参数打包为元组

>>> fun(2, 3, 4)
<class 'tuple'> (3, 4)

我想在函数参数之外实现类似的事情。因此,我认为我可以通过扩展可迭代解包来实现相同的目标,但它总是将事物打包为 列表 而不是 元组:

# RHS is a tuple
>>> (a, *args) = (2, 3, 4)
>>> type(args)
<class 'list'>
>>> args
[3, 4] #but args is not a tuple!

使其与以下内容没有什么不同:

# RHS is a list
>>> (a, *args) = [2, 3, 4]
>>> type(args)
<class 'list'>
>>> args
[3, 4]

我可以理解PEP中是这样提议的也是如此。

我问是否有其他方法可以实现我想要的。

当然,我可以稍后将 args 转换为元组:

>>> args = tuple(args)
>>> args
(3, 4)

如果在作业期间无法直接实现这一点。

最佳答案

我知道的最接近的方法(我承认,不能直接回答你的问题)就是对元组进行切片:

t = (2,3,4)
a, args = t[0], t[1:]

>>> type(args)
<class 'tuple'>

是的,它很冗长,但至少它避免了中间列表。

关于python - 使用 * 将值打包到元组中,就像函数参数打包一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59359991/

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