在包含字典的列表中获取最小值(键,值)
getting minimum (key, value) in a list that holds a dictionary
我有一个包含字典行的列表,如下所示:
queue = [{1: 0.39085439023582913, 2: 0.7138416909634645, 3: 0.9871959077954673}]
我正在尝试将其设为 return 最小值及其密钥,因此在这种情况下它将 return
1,0.39085439023582913
我试过使用
min(queue, key=lambda x:x[1])
但是整行 return 都是这样:有什么建议吗?谢谢!
{1: 0.39085439023582913, 2: 0.7138416909634645, 3: 0.9871959077954673}
是的,min(queue)
会在 list
中找到最小值,而不是在封闭的 dictionary
中
这样做:
key_of_min_val = min(queue[0], key=queue[0].get)
print((key_of_min_val , queue[0][key_of_min_val]))
你可以通过
mykey = min(queue[0], key=queue[0].get)
然后只需使用此键并获取您的字典值
mykey, queue[0][mykey]
如果你想要列表中每个字典的最小值,你可以使用以下列表理解:
[min(d.items(), key=lambda x: x[1]) for d in queue]
你的例子returns:
[(1, 0.39085439023582913)]
d.items()
returns 字典 d
的 (key, value)
形式的元组列表。然后,我们使用值(在本例中为 x[1]
)对这些元组进行排序。
如果您的数据总是以列表形式包含一个字典,您还可以在 queue
的第一个元素上调用 .items()
并找到最小值:
print(min(queue[0].items(), key=lambda x:x[1]))
#(1, 0.39085439023582913)
我有一个包含字典行的列表,如下所示:
queue = [{1: 0.39085439023582913, 2: 0.7138416909634645, 3: 0.9871959077954673}]
我正在尝试将其设为 return 最小值及其密钥,因此在这种情况下它将 return
1,0.39085439023582913
我试过使用
min(queue, key=lambda x:x[1])
但是整行 return 都是这样:有什么建议吗?谢谢!
{1: 0.39085439023582913, 2: 0.7138416909634645, 3: 0.9871959077954673}
是的,min(queue)
会在 list
中找到最小值,而不是在封闭的 dictionary
中
这样做:
key_of_min_val = min(queue[0], key=queue[0].get)
print((key_of_min_val , queue[0][key_of_min_val]))
你可以通过
mykey = min(queue[0], key=queue[0].get)
然后只需使用此键并获取您的字典值
mykey, queue[0][mykey]
如果你想要列表中每个字典的最小值,你可以使用以下列表理解:
[min(d.items(), key=lambda x: x[1]) for d in queue]
你的例子returns:
[(1, 0.39085439023582913)]
d.items()
returns 字典 d
的 (key, value)
形式的元组列表。然后,我们使用值(在本例中为 x[1]
)对这些元组进行排序。
如果您的数据总是以列表形式包含一个字典,您还可以在 queue
的第一个元素上调用 .items()
并找到最小值:
print(min(queue[0].items(), key=lambda x:x[1]))
#(1, 0.39085439023582913)