使用X和Y值索引嵌套列表

时间:2013-05-07 15:33:42

标签: python

我有一个顶点列表和它们之间的长度。我想创建一个函数,通过搜索列表来查找列表中2个顶点之间的距离。

列表看起来像:

lengths = [[X, Y, length], [X, Z, length], [Y, Z, length], etc]

假设顶点是X和Y我可以使用X,Y索引列表以找到X和Y之间的长度吗?

目前我这样做:

def find_sides(X, Y, lengths):
    for a in lengths:
        if a[0] == X and a[1] == Y:
            length = a[2]
    return length

但随着长度列表的增加,这可能需要时间。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用字典:

lengths = {(X, Y): length, (X, Z): length, (Y, Z): length, ...}

然后,这只是索引字典的问题:

length = lengths[(X, Y)]

您可以使用词典理解将当前列表转换为建议的格式:

lengthDict = {(a, b): c for [a, b, c] in lengthList}