我有一個字典串列,我想從標簽值中創建元組,以便陣列中的標簽成對放置。我怎樣才能做到這一點:
output: [
{
"title": "subject1",
"tags": ['a','b'],
},
{
"title": "subject2",
"tags": ['c','d','f'],
}]
我想要的是:
[(a,b),(c,d),(c,f),(d,f)]
uj5u.com熱心網友回復:
您可以使用itertools.combinations()它來獲取它。以下將起作用
from itertools import combinations
L1 = [{"title": "subject1", "tags": ['a','b']},
{"title": "subject2", "tags": ['c','d','f']}]
res = []
for i in L1:
tags = combinations(i["tags"], 2)
res = list(tags)
print(res)
uj5u.com熱心網友回復:
您可以使用itertools.combinations(... , 2)并itertools.chain獲得您想要的內容,如下所示:
>>> import itertools
>>> results = [{"title": "subject1","tags": ['a','b'],},{"title": "subject2","tags": ['c','d','f'],}]
>>> lst = [list(itertools.combinations(res['tags'] , 2)) for res in results]
>>> lst
[[('a', 'b')], [('c', 'd'), ('c', 'f'), ('d', 'f')]]
>>> list(itertools.chain.from_iterable(lst))
[('a', 'b'), ('c', 'd'), ('c', 'f'), ('d', 'f')]
或不帶鏈:
>>> import itertools
>>> results = [{"title": "subject1","tags": ['a','b'],},{"title": "subject2","tags": ['c','d','f'],}]
>>> out = []
>>> for res in results:
... out = list(itertools.combinations(res['tags'] , 2))
>>> out
[('a', 'b'), ('c', 'd'), ('c', 'f'), ('d', 'f')]
# for more explanation
[1,2] [3,4]
[1,2,3,4]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/329500.html
上一篇:如何在kotlin中使用groupBy從復雜的結構構建地圖
下一篇:Json.NET序列化Dictionary<TKey,TValue>與KeyValuePair<TKey,TValue>
