【发布时间】:2021-02-08 19:51:29
【问题描述】:
我正在尝试从元组字典中返回与具有最小第三索引值的元组对应的键(namedtuple 顶点作为键,元组以 3 个元素作为值)。
例如,假设我有元组:
vertex = namedtuple("Vertex", ["vertex_id", "vertex_x", "vertex_y"])
d = {vertex(vertex_id='B', vertex_x=11, vertex_y=0): (4, 5, 9),
vertex(vertex_id='C', vertex_x=6, vertex_y=0): (2, 0, 2),
vertex(vertex_id='A', vertex_x=4, vertex_y=0): (0, 2, 3)}
我需要一些东西来回复我Vertex(vertex_id='C', vertex_x=6, vertex_y=0)。我正在尝试类似min(d.values(), key = lambda t: t[2])(但这会返回元组(2, 0, 2),我必须将其追溯到它的键)或min(d, key = lambda t: t[2])(这不是真的工作)。
有没有更好的方法来设置 min() 来执行此操作,还是我必须追溯与第一种方法给我的值对应的键?如果我在使用更大的字典时不必搜索它会更有效。
【问题讨论】:
-
不,我的情况需要我不太熟悉的关键参数的不同自定义。这个问题我之前查过,其实我尝试的解决方案是基于它的top answer和其他一些问题。
-
Andrej Kesely 下面的答案使用了对现有问题的第二高评分答案的确切形式,并展示了如何使其适用于您的特定问题。
标签: python dictionary tuples min