[英]How to generate a dictionary of dictionaries from an array?
我有一個像這樣的字符串數組:
Array = ['ABC', 'DEF', 'GHI']
如何將其映射到具有以下形狀的字典中?
dictionary = {
'ABC': {'DEF': auxFunction(ABC,DEF), 'GHI': auxFunction(ABC,GHI)},
'DEF': {'ABC': auxFunction(DEF,ABC), 'GHI': auxFunction(DEF,GHI)},
'GHI': {'ABC': auxFunction(GHI,ABC), 'DEF': auxFunction(GHI,DEF)},
}
你可以用兩個字典理解來做到這一點
dictionary = {name: {x: auxFunction(name, x) for x in array if x != name} for name in array}
{'ABC': {'DEF': auxFunction(ABC, DEF), 'GHI': auxFunction(ABC, GHI)},
'DEF': {'ABC': auxFunction(DEF, ABC), 'GHI': auxFunction(DEF, GHI)},
'GHI': {'ABC': auxFunction(GHI, ABC), 'DEF': auxFunction(GHI, DEF)}}
你可以試試這個:
finalDict= {}
Array = ['ABC', 'DEF', 'GHI']
for i in Array:
tempDict = {}
for j in Array:
if i!= j:
tempDict[j] = "A calculation between " + i + " - " + j
finalDict[i] = tempDict
print(finalDict)
輸出:
{
'ABC': {'DEF': 'A calculation between ABC - DEF', 'GHI': 'A calculation between ABC - GHI'},
'DEF': {'ABC': 'A calculation between DEF - ABC', 'GHI': 'A calculation between DEF - GHI'},
'GHI': {'ABC': 'A calculation between GHI - ABC', 'DEF': 'A calculation between GHI - DEF'}
}
>>> auxFunction = max
>>> {Array[i]: {Array[j]: auxFunction(Array[i], Array[j]) for j in range(len(Array)) if j != i} for i in range(len(Array))}
{456: {123: 456, 789: 789}, 123: {456: 456, 789: 789}, 789: {456: 789, 123: 789}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.