Python从返回元组附加到列表

Python从返回元组附加到列表,python,Python,我有一个列表和一个返回3元组的函数f。我想捕获前两个返回值,第三个返回值附加到lst。我知道我可以做到以下几点: a, b, c = f() lst.append(c) 但我希望有一种方法不使用无关变量“c”。我知道我也能做到: lst.append(f()[2]) 但我不想丢弃另外两个返回值。 有什么建议吗 编辑:我很感谢提供的答案,但更清楚地说,问题是要找到一条简洁的单行线。在附加结果之前,将返回值指定给局部变量。 不,不能捕获两个值并在一个语句中追加第三个值;每个命令只能得到一个“动词

我有一个列表和一个返回3元组的函数
f
。我想捕获前两个返回值,第三个返回值附加到lst。我知道我可以做到以下几点:

a, b, c = f()
lst.append(c)
但我希望有一种方法不使用无关变量“c”。我知道我也能做到:

lst.append(f()[2])
但我不想丢弃另外两个返回值。
有什么建议吗


编辑:我很感谢提供的答案,但更清楚地说,问题是要找到一条简洁的单行线。

在附加结果之前,将返回值指定给局部变量。 不,不能捕获两个值并在一个语句中追加第三个值;每个命令只能得到一个“动词”

result = f()
lst.append(result[2])

如果您的问题不是多写一行代码,而是希望函数调用、赋值和附录在一条语句中,那么您可以使用包装函数:

def append_and_assign(mylist, myfunc):
    a, b, c = myfunc()
    mylist.append(c)
    return a,b,c
所以你可以打电话:

 a,b,c = append_and_assign(lst, f)

除非更改函数定义,否则使用“一行程序”(不使用分号将两条语句放在一行中)是不可能实现的

具体来说,用以下方式定义
f()

def f(list_to_append_to):
    a = ...
    b = ...
    c = ...
    list_to_append_to.append(c)
    return a, b
然后:


c
似乎与您正在使用它无关。我可以问一下问题是从哪里来的吗?@AGNGazer不太确定。如果OP需要
f
中的所有值,但不需要三个不同的变量,这可能就是OP需要的。(不过,我承认我最初的反应和你的一样)。在OP澄清他们最初的方法的问题之前,我们不能做出这样的判断。@AGNGazer,好吧,既然OP已经更新声明他们只需要一行,你的评论是有效的。很酷的副作用。
a, b = f(mylist)