list.index ValueError

问题描述 投票:0回答:1

我试图获取列表中编号最高的索引,但过了一会儿它就停止工作,即使要搜索的值存在于列表中。

closest_vertex = vertex[:][2].index(max([vertex[i][2]] for i, _ in enumerate(vertex))[0])

我希望它坐在顶点列表的第三个值之间,并且它最初可以工作。

python indexing max
1个回答
0
投票

您的代码(很可能)没有执行您期望的操作,因此出现索引错误。让我们解开该行:

  1. max([vertex[i][2]] for i, _ in enumerate(vertex))[0]
    您将获得所有子列表索引 2 处的所有元素中的
    max
    元素。更简洁的方法是
    max(x[2] for x in vertex)
  2. vertex[:][2].index(...)
    首先,
    [:]
    只是创建列表的副本,然后在索引2处获得子列表,然后尝试从(1)中找到元素的索引

所以问题是(1)获取column 2中的最大元素,但是然后你尝试找到该元素在row 2中的位置。在你的最小示例中,这恰好有效,但并不总是如此。

© www.soinside.com 2019 - 2024. All rights reserved.