簡體   English   中英

如何從數組生成字典字典?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM