Python:确定包含 lists/tuples 的字典中的最小值
Python: Determine minimum value within a dictionary that contains lists/tuples
我有以下字典,其中包含作为键的城市名称、存储在元组中的假坐标以及相应的累积成对距离值。我正在尝试编写一个函数,该函数 returns 具有最小距离值的键的字典项,在这种情况下为 29.550506953719747。
我的词典:
d = {'Las_Vegas': ((11.0, 10.0), 31.571777946711684),
'Los_Angeles': ((4.0, 8.0), 29.550506953719747),
'San_Diego': ((7.0, 5.0), 32.02332325098408),
'Seattle': ((3.0, 26.0), 57.29385852375022)}
期望的输出:
'Los_Angeles': ((4.0, 8.0), 29.550506953719747)
当前方法:
min(d.items(), key = d.get)
这个returns:
('Seattle', ((3.0, 26.0), 57.29385852375022))
这应该有效:
min(d.items(), key=lambda x: x[1][1])
您当前解决方案的问题是 d.items()
没有 return d
的键,所以 d.get
总是 returns None
被调用时,所以 min
不能真正完成它的工作。
x[1]
将获取键 (x[0]
) 的字典值,然后 x[1][1]
将访问元组的第二个值(您关心的那个)。
我有以下字典,其中包含作为键的城市名称、存储在元组中的假坐标以及相应的累积成对距离值。我正在尝试编写一个函数,该函数 returns 具有最小距离值的键的字典项,在这种情况下为 29.550506953719747。
我的词典:
d = {'Las_Vegas': ((11.0, 10.0), 31.571777946711684),
'Los_Angeles': ((4.0, 8.0), 29.550506953719747),
'San_Diego': ((7.0, 5.0), 32.02332325098408),
'Seattle': ((3.0, 26.0), 57.29385852375022)}
期望的输出:
'Los_Angeles': ((4.0, 8.0), 29.550506953719747)
当前方法:
min(d.items(), key = d.get)
这个returns:
('Seattle', ((3.0, 26.0), 57.29385852375022))
这应该有效:
min(d.items(), key=lambda x: x[1][1])
您当前解决方案的问题是 d.items()
没有 return d
的键,所以 d.get
总是 returns None
被调用时,所以 min
不能真正完成它的工作。
x[1]
将获取键 (x[0]
) 的字典值,然后 x[1][1]
将访问元组的第二个值(您关心的那个)。