我试图获取列表中编号最高的索引,但过了一会儿它就停止工作,即使要搜索的值存在于列表中。
closest_vertex = vertex[:][2].index(max([vertex[i][2]] for i, _ in enumerate(vertex))[0])
我希望它坐在顶点列表的第三个值之间,并且它最初可以工作。
您的代码(很可能)没有执行您期望的操作,因此出现索引错误。让我们解开该行:
max([vertex[i][2]] for i, _ in enumerate(vertex))[0]
您将获得所有子列表索引 2 处的所有元素中的 max
元素。更简洁的方法是 max(x[2] for x in vertex)
vertex[:][2].index(...)
首先,[:]
只是创建列表的副本,然后在索引2处获得子列表,然后尝试从(1)中找到元素的索引所以问题是(1)获取column 2中的最大元素,但是然后你尝试找到该元素在row 2中的位置。在你的最小示例中,这恰好有效,但并不总是如此。