我有一個元組列表元組,我需要更多的信息添加到每個元組。該列表看起來是這樣的:Python中創建一個使用函數返回多個值
[(name1, value1), (name2, value2), (name1, value3), ...]
我有一個函數來獲取每個元組的額外信息,但我需要新的元組是平的,我想不出一個好辦法做到這一點的列表理解。我希望能夠做這樣的事情:
new_list = [(name, value, *extra_info(name)) for name, value in old_list]
或
new_list = [list(name, value, *extra_info(name)) for name, value in old_list]
不幸的是,第一個是語法錯誤,而第二個不工作,因爲list
只需要在一個參數。有沒有辦法將extra_info
返回的元組解壓縮到列表理解中?如果沒有,那麼解決這個問題的最好的方法是什麼?
要清楚,我想用一個看起來像這樣的列表來結束:
[(name1, value1, extra1, extra2), (name2, value2, extra3, extra4), (name1, value3, extra1, extra2), ...]
'(name,value)+ extra_info(name)'?假設'extra_info'返回一個元組? – 2014-09-30 22:27:15
@ g.d.d.c是的,'extra_info'返回多個值,所以它們被打包到一個元組中。 – 2014-09-30 22:34:58