简体   繁体   English

从多个输入生成循环

[英]Generating a loop from multiple inputs

I am trying to generate a list of 1000 houses based on the given inputs of 2 houses ie House_1=[143.5689855, -38.328956999999996] and House_2=[143.5692555, -38.328993] .我试图根据 2 所房子的给定输入生成 1000 所房子的列表,即House_1=[143.5689855, -38.328956999999996]House_2=[143.5692555, -38.328993] The difference of these houses will be added to next subsequent houses as shown in below script.这些房屋的差异将添加到下一个后续房屋中,如下面的脚本所示。

from arcgis.geocoding import reverse_geocode
import pprint

House_1=[143.5689855, -38.328956999999996]
House_2=[143.5692555, -38.328993]


latitude_diff = House_2[0] - House_1[0]
longitude_diff= House_2[1] - House_1[1]



House_3=[House_2[0]+latitude_diff ,House_2[1]+longitude_diff]
pprint.pprint(House_3)

House_4=[House_3[0]+latitude_diff ,House_3[1]+longitude_diff]
pprint.pprint(House_4)

House_5=[House_4[0]+latitude_diff ,House_4[1]+longitude_diff]
pprint.pprint(House_5)
.
.
.
.
.
House_1000=[House_999[0]+latitude_diff ,House_999[1]+longitude_diff]
pprint.pprint(House_1000)
  • As I have used a manual process to generate a list of 3 houses ie House_3, House_4, House_5 .How to generate a loop that will automatically iterate for 1000 houses and output the required results?由于我使用手动过程生成了 3 个房屋的列表,即House_3, House_4, House_5如何生成一个循环,自动迭代 1000 个房屋并输出所需的结果?

Maybe go through the Python tutorial at least once?也许至少阅读一次 Python 教程? https://docs.python.org/3/tutorial/controlflow.html#the-range-function https://docs.python.org/3/tutorial/controlflow.html#the-range-function

So house_3 is latitude is House_2[0]+1* latitude_diff and house_4 latitude is House_2[0] + 2 * latitude_diff所以 house_3 的纬度是House_2[0]+1* latitude_diff而 house_4​​ 的纬度是House_2[0] + 2 * latitude_diff

So you can do a list comprehension -所以你可以做一个列表理解——

houses = [House_1, House_2]
for i in range(1, num_houses):
    curr_house = [House_2[0] + i* latitude_diff, House_2[1] + i* longitude_diff]
    pprint.pprint(curr_house)
    houses.append(curr_house)
Houses = [0]*(1000)
Houses[0], Houses[1] = [143.5689855, -38.328956999999996], [143.5692555, -38.328993]
for i in range(2, 1000):
    latitude_diff = Houses[i-1][0] - Houses[i-2][0]
    longitude_diff= Houses[i-1][1] - Houses[i-2][1]
    temp = [Houses[i-1][0]+latitude_diff, Houses[i-1][1]+longitude_diff]

    Houses[i] = temp

Try this :)尝试这个 :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM