在python中,有一个有趣的、非常有用的工具,您可以通过它在函数签名上匹配元组中的值。
def first((a, b)):
return a
x = (4, 9)
first(x)
li = [(5, 4), (8, 9)]
map(first, li)
def second(a, b):
# does not work the same way
return b我没有看到任何关于使用这个的文献。python社区为此使用了哪些词汇表?有什么令人信服的理由不使用这个吗?
发布于 2016-02-25 00:31:15
它叫元组参数解包,是在Python3.0中删除。
就像@zondo说的,出于兼容性的原因,您可能不想使用它。我自己也偶尔在Python 2中使用它。你会在我的第一个链接的PEP中找到反对它的理由,但请记住,这是它被从语言中删除的原因,我认为这至少部分是因为它使Python创建者更容易,这不一定是你或我避免使用它的原因。
发布于 2016-02-25 00:31:52
在Python2,这太棒了。然而,在Python3中它是无效的语法,所以我不推荐它,因为它的前向可压缩的原因。
发布于 2019-11-09 09:42:06
这个公认的答案并没有说明如何解决这个问题,所以让我把它说出来。
Python 2代码
def fun(a, (b, c), d):
print("a {0} b {1} c {2} d {3}".format(a, b, c, d))可以重构成
def fun(a, _args, d):
b, c = _args
print("a {0} b {1} c {2} d {3}".format(a, b, c, d))它也是有效的Python 3代码。
就像这样
fun(1, [2, 3], 4)链接的佩普-3113更详细地解释了这一点,并提供了在Python3.0中删除这种语法的理由。
https://stackoverflow.com/questions/35615939
复制相似问题