我有一個字典,其中包含一個鍵下的多個串列 - 這是我的字典輸出的一個示例:
print(dic)
輸出:
{1: [[1, 2, 3, 4, 5, 6, 7],
[5, 1, 4, 34, 3, 65, 0, 2],
[2, 5, 4, 5, 7, 8, 4, 7]],
2: [[1, 5, 4, 5, 0, 1, 4, 6],
[2, 2, 3, 5, 6, 6, 3, 9]],
3: [[12, 35, 42, 53, 70, 71, 74, 76],
[6, 11, 16, 17, 38, 62, 66, 77]]}
我希望為每個鍵下的所有串列創建一個串列。所以我正在尋找的輸出示例如下所示:
{1: [[1, 2, 3, 4, 5, 6, 7, 5, 1, 4, 34, 3, 65, 0, 2, 2, 5, 4, 5, 7, 8, 4, 7]],
2: [[1, 5, 4, 5, 0, 1, 4, 6, 2, 2, 3, 5, 6, 6, 3, 9]],
3: [[12, 35, 42, 53, 70, 71, 74, 76, 6, 11, 16, 17, 38, 62, 66, 77]]}
我嘗試了一個 dict 理解但收效甚微,以及一個我迭代 dic.items() 的 for 回圈。
uj5u.com熱心網友回復:
您可以使用字典理解:
{key: [[item for sublist in value for item in sublist]] for key, value in data.items()}
這輸出:
{
1: [[1, 2, 3, 4, 5, 6, 7, 5, 1, 4, 34, 3, 65, 0, 2, 2, 5, 4, 5, 7, 8, 4, 7]],
2: [[1, 5, 4, 5, 0, 1, 4, 6, 2, 2, 3, 5, 6, 6, 3, 9]],
3: [[12, 35, 42, 53, 70, 71, 74, 76, 6, 11, 16, 17, 38, 62, 66, 77]]
}
uj5u.com熱心網友回復:
嘗試itertools.chain.from_iterable:
>>> import itertools
>>> {k : [list(itertools.chain.from_iterable(v))] for k,v in dct.items()}
{1: [[1, 2, 3, 4, 5, 6, 7, 5, 1, 4, 34, 3, 65, 0, 2, 2, 5, 4, 5, 7, 8, 4, 7]],
2: [[1, 5, 4, 5, 0, 1, 4, 6, 2, 2, 3, 5, 6, 6, 3, 9]],
3: [[12, 35, 42, 53, 70, 71, 74, 76, 6, 11, 16, 17, 38, 62, 66, 77]]}
uj5u.com熱心網友回復:
使用itertools.chain:
from itertools import chain
out = {k: [list(chain.from_iterable(l))]
for k,l in dic.items()}
輸出:
{1: [[1, 2, 3, 4, 5, 6, 7, 5, 1, 4, 34, 3, 65, 0, 2, 2, 5, 4, 5, 7, 8, 4, 7]],
2: [[1, 5, 4, 5, 0, 1, 4, 6, 2, 2, 3, 5, 6, 6, 3, 9]],
3: [[12, 35, 42, 53, 70, 71, 74, 76, 6, 11, 16, 17, 38, 62, 66, 77]]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/497563.html
下一篇:使用主鍵合并/連接多個字典
