Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以在Python中跳过itertools.product循环中的值?_Python_Python 3.x_Csv_Itertools - Fatal编程技术网

有没有一种方法可以在Python中跳过itertools.product循环中的值?

有没有一种方法可以在Python中跳过itertools.product循环中的值?,python,python-3.x,csv,itertools,Python,Python 3.x,Csv,Itertools,我正在制作一个脚本来比较两个地址之间的距离,这些地址与itertools.product一起存储在两个不同的.csv文件中 比较是一种检查地址之间是否相距1km的if条件 需要将地址1中的每个地址与地址2中的每个地址进行比较 如果addresses1中的地址与addresses2中的地址相距1km,则需要移动到下一个地址。由于列表太长,等待移动到下一个地址是浪费时间的。-这就是问题所在 我尝试了继续,但不起作用 假设我有两个地址列表: addresses1 = ["Address1","Addr

我正在制作一个脚本来比较两个地址之间的距离,这些地址与
itertools.product
一起存储在两个不同的.csv文件中

比较是一种检查地址之间是否相距1km的
if
条件

需要将
地址1
中的每个地址与
地址2
中的每个地址进行比较

如果
addresses1
中的地址与
addresses2
中的地址相距1km,则需要移动到下一个地址。由于列表太长,等待移动到下一个地址是浪费时间的。-这就是问题所在

我尝试了
继续
,但不起作用

假设我有两个地址列表:

addresses1 = ["Address1","Address2","Address3","Address4"]
addresses2 = ["compAddress1","compAddress2,"compAddress3","compAddress4","compAddress5"]

producted_list = list(itertools.product(addresses1, addresses2))

for a,b in producted_list:
    BLOCK OF CODE WITH GEOLOCATIONS

    if(distance == 1km):
        print("Addresses are within 1km from each other, move on next one")
        continue

让我们看看它是如何比较的:

a[0] -> b[0]
a[0] -> b[1]
a[0] -> b[2]
a[0] -> b[3]
a[0] -> b[4]

a[1] -> b[0]
a[1] -> b[1]
a[1] -> b[2]
a[1] -> b[3]
a[1] -> b[4]

a[2] -> b[0]
a[2] -> b[1]
a[2] -> b[2]
a[2] -> b[3]
a[2] -> b[4]
.
.
.
假设
a[1]
b[0]
匹配,我想立即继续
a[2]
,而不必继续
a[1]
b[]

我试着使用Eric的代码

对于b中的a:
def doWork():
对于d中的c:
如果出现以下情况:
返回#
嫁妆

但它不工作,它会中断,或者它需要更改。

只需写两个循环,然后从内部循环中断以继续外部循环:

addresses1 = ["Address1", "Address2", "Address3", "Address4"]
addresses2 = ["compAddress1", "compAddress2", "compAddress3", "compAddress4", "compAddress5"]

for a in addresses1:
    for b in addresses2:
        BLOCK OF CODE WITH GEOLOCATIONS

        if(distance == 1km):
            print("Addresses are within 1km from each other, move on next one")
            break
for a in addresses_1:
    for b in addresses_2:
        if distance(a, b) <= 1.00:
            print(a, b, "are within 1 km")
            break

只需编写两个循环,并中断内部循环,以继续外部循环:

addresses1 = ["Address1", "Address2", "Address3", "Address4"]
addresses2 = ["compAddress1", "compAddress2", "compAddress3", "compAddress4", "compAddress5"]

for a in addresses1:
    for b in addresses2:
        BLOCK OF CODE WITH GEOLOCATIONS

        if(distance == 1km):
            print("Addresses are within 1km from each other, move on next one")
            break
for a in addresses_1:
    for b in addresses_2:
        if distance(a, b) <= 1.00:
            print(a, b, "are within 1 km")
            break

您在引用的副本中遗漏了适用的解决方案。您需要
中断
内部循环;这将自然地延续外部循环:

addresses1 = ["Address1", "Address2", "Address3", "Address4"]
addresses2 = ["compAddress1", "compAddress2", "compAddress3", "compAddress4", "compAddress5"]

for a in addresses1:
    for b in addresses2:
        BLOCK OF CODE WITH GEOLOCATIONS

        if(distance == 1km):
            print("Addresses are within 1km from each other, move on next one")
            break
for a in addresses_1:
    for b in addresses_2:
        if distance(a, b) <= 1.00:
            print(a, b, "are within 1 km")
            break
对于地址_1中的地址:
对于地址2中的b:

如果距离(a,b)您从引用的副本中遗漏了适用的解决方案。您需要
中断
内部循环;这将自然地延续外部循环:

addresses1 = ["Address1", "Address2", "Address3", "Address4"]
addresses2 = ["compAddress1", "compAddress2", "compAddress3", "compAddress4", "compAddress5"]

for a in addresses1:
    for b in addresses2:
        BLOCK OF CODE WITH GEOLOCATIONS

        if(distance == 1km):
            print("Addresses are within 1km from each other, move on next one")
            break
for a in addresses_1:
    for b in addresses_2:
        if distance(a, b) <= 1.00:
            print(a, b, "are within 1 km")
            break
对于地址_1中的地址:
对于地址2中的b:

如果距离(a,b),你可能最好写两个循环,而不是尝试过滤产品。这是一样的,如果我像在其他编程语言中一样使用两个循环,则不起作用。你可能最好写两个循环,而不是尝试过滤产品。这是一样的,如果我像在其他编程语言中一样使用两个for循环,则不起作用。终于起作用了。真是难以置信。。。我无法想象一个多么愚蠢的小姐。我们大多数人都能想象——我们曾经去过那里。你觉得我是怎么认出这个的?:-)终于开始工作了。真是难以置信。。。我无法想象一个多么愚蠢的小姐。我们大多数人都能想象——我们曾经去过那里。你觉得我是怎么认出这个的?:-)