没有得到我想要的迭代

时间:2017-03-06 22:03:54

标签: python-2.7 list iteration

我已经在这方面工作了一段时间,我无法从我编码的循环中得到我想要的迭代。代码首先调用headerBody10()并将输出附加到列表dist。列表中有两列,dist中的列0是FROM数据,列1是TO数据。当附加dist列表时,它是一个列表列表。

我想找到FROM与TO类似的所有数据行,或者哪些道路有交集。我希望这段代码通过所有TO数据运行每个FROM,到目前为止,我只有第一行FROM运行所有TO行。因此,incrementor m是FROM列,n是TO列。所以问题是我怎样才能让每一行FROM都穿过TO的每一行?

n = 0
m = 0
dist = []
match = []
for line in headerBody10():
    dist.append(line)
try:
    for data in dist:
        for line in data:
            if dist[n][1] in dist[m][0]:
                match.append([dist[n][1],dist[m][0],n,m])
            else:
                m = m + 1
    n = n + 1
except IndexError:
    print match

以下是一些示例输入:

26th St South,  Jct 13th St South
N-101 10th St,  Jct 23rd St NE
Central Ave,    Interstate 15
17Th St NE,         N-104 10th St N
N-60 10th Ave S,    End 4 lane
Fox Farm Rd ,       Flood Road

这是最新输出,此输出来自else子句,因此未找到匹配项。 m正在迭代,但在n可以迭代之前停止。

I-15 Gore Hill       Concrete 1 0
I-15 Gore Hill       Fox Farm Rd 2 0
I-15 Gore Hill       13th St South 3 0
I-15 Gore Hill       23rd St NE 4 0
I-15 Gore Hill       Intererstate 15 5 0
I-15 Gore Hill       N-104 10th St N 6 0
I-15 Gore Hill       4 lane 7 0
I-15 Gore Hill       Flood Road 8 0
I-15 Gore Hill       Division 9 0
I-15 Gore Hill       6th St 10 0
I-15 Gore Hill       Concrete 11 0

1 个答案:

答案 0 :(得分:1)

我只想取出其他n,m初始化和迭代(添加)

for n in range(0,len(dist)):
    for m in range(0,len(dist)):
        if dist[n][1] in dist[m][0]:
            match.append([dist[n][1],dist[m][0],n,m])