我正在搜索包含字典中最小值的键的列表。 目的是获取每个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):
...
或者我如何生成此列表?
答案 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)