在字典中搜索最小值的键

时间:2019-04-07 01:14:28

标签: python-3.x dictionary key minimum

我正在搜索包含字典中最小值的键的列表。 目的是获取每个i的最小值的键。

#Dict:
p[i,j] = {(0,0):10, (0,1):11, (0,2):12, (1,0):20, (1,1):21, (1,2):22, (2,0):30, (2,1):31, (2,2):32}

#The list should look like this:
list = [(0,0), (1,0), (2,0)]

我可以循环吗?

for i in range(3):
   ...

或者我如何生成此列表?

1 个答案:

答案 0 :(得分:0)

对不起,我不清楚您的意思。也许您想获取P的键,它是最小值,并且该键属于列表。您可以尝试下面的代码。

p = {(0,0):10, (0,1):11, (0,2):12,
     (1,0):20, (1,1):21, (1,2):22,
     (2,0):30, (2,1):31, (2,2):32}
list = [(0,0), (1,1), (2,2)]

listRes = {}
# get listRes 10:(0,0) 21:(1,1) 32:(2,2)
for j in range(len(list)):
    listRes[p[list[j]]] = list[j]

# (10, (0, 0))
print(min(listRes.items(), key=lambda x: x[0]))

好的,也许我明白了。请参见下面的代码。

import sys
p = {(0,0):10, (0,1):11, (0,2):12,
     (1,0):20, (1,1):21, (1,2):22,
     (2,0):30, (2,1):31, (2,2):32}

res = []
tuple1 = ()

for i in range(3):
    minValue = sys.maxsize
    for j in range(3):
        if minValue>p[(i,j)]:
            tuple1 = (i,j)
            minValue = p[(i,j)]
    res.append(tuple1)
print(res)
相关问题