我有一個嵌套串列,如下所示:
list = [['bob', '12'], ['jim', '14'], ['bob', '13']]
我正在嘗試獲得以下輸出:
list = [['bob', '12', '13'], ['jim', '14']]
有什么辦法可以做到這一點。我只能截斷嵌套的 lit 以洗掉值,但不能將它們添加到另一個串列中。任何幫助,將不勝感激。謝謝。我嘗試了以下方法:
i = 0
while i < len(list):
find = list[i][0]
for a, b in list:
if find == a:
list[i]].append(b)
i = 1
uj5u.com熱心網友回復:
一種選擇是在組合串列時使用臨時字典:
tmp = {}
for name, num in lst:
if name in tmp:
tmp[name].append(num)
else:
tmp[name] = [name, num]
out = list(tmp.values())
輸出:
[['bob', '12', '13'], ['jim', '14']]
作為旁注,當您list用作變數名時,您不能list()在之后使用建構式,因為變數名會隱藏它。因此,最好將變數命名為其他名稱。我在這里命名lst。
uj5u.com熱心網友回復:
一個骯臟的襯里:-D
[[k,*v] for k,v in {_ld:[_l[1] for _l in l if _l[0]==_ld] for _ld in {_l[0] for _l in l }}.items()]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/455937.html
標籤:Python python-3.x 列表 嵌套列表
