在字典中搜索最小值的键

问题描述 投票:0回答:1

我正在搜索一个列表,其中包含dict中最小值的键。目标是获得每个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):
   ...

或者我如何生成此列表?

python-3.x dictionary key minimum
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.