【问题标题】:Python: Determine minimum value within a dictionary that contains lists/tuplesPython:确定包含列表/元组的字典中的最小值
【发布时间】:2018-07-31 13:25:35
【问题描述】:

我有以下字典,其中包含作为键的城市名称、存储在元组中的假坐标以及相应的累积成对距离值。我正在尝试编写一个函数,该函数返回具有最小距离值的键的字典项,在这种情况下为 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)

这会返回:

('Seattle', ((3.0, 26.0), 57.29385852375022))

【问题讨论】:

    标签: python dictionary indexing spatial min


    【解决方案1】:

    这应该可行:

    min(d.items(), key=lambda x: x[1][1])
    

    您当前解决方案的问题是d.items() 不返回d 的键,所以d.get 在调用时总是返回None,所以min 不能真正完成它的工作。

    x[1] 将获取键的字典值 (x[0]),x[1][1] 将访问元组的第二个值(您关心的那个)。

    【讨论】:

    • 非常感谢!我尝试了一堆不同的索引组合,却不知道每个索引值实际上在做什么。我想请你喝啤酒!
    猜你喜欢
    • 2018-01-09
    • 2018-08-02
    • 2012-07-28
    • 2016-04-17
    • 2015-12-04
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多