簡體   English   中英

Python從返回元組追加到列表

[英]Python append to list from return tuple

我有一個列表和一個返回3元組的函數f 我想捕獲前兩個返回值,第三個追加到lst。 我知道我可以做到以下幾點:

a, b, c = f()
lst.append(c)

但我想要一種不使用無關變量“c”的方法。 我知道我也可以這樣做:

lst.append(f()[2])

但我不想丟掉其他兩個返回值。
有什么建議?

編輯 :我很欣賞所提供的答案,但更明確的問題是找到一個整潔的單行。

在追加結果之前,將返回值分配給局部變量。 不,你不能抓住兩個值並將第三個附加在一個語句中; 每個命令只能獲得一個“動詞”。

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

除非您更改函數定義, 否則無法使用“單行”(不使用分號來在一行上插入兩個語句)。

具體來說,按以下方式定義f()

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

然后:

a, b = f(mylist)

如果您的問題不是通過編寫一行代碼來節省自己,但是您只想在單個語句中使用函數調用,賦值和附錄,則可以使用包裝函數:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM