为了账号安全,请及时绑定邮箱和手机立即绑定

从多个输入生成循环

从多个输入生成循环

阿波罗的战车 2022-09-13 09:57:45
我正在尝试根据2个房屋的给定输入(即和)生成1000个房屋的列表。这些房屋的差异将添加到下一个后续房屋中,如下面的脚本所示。House_1=[143.5689855, -38.328956999999996]House_2=[143.5692555, -38.328993]from arcgis.geocoding import reverse_geocodeimport pprintHouse_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)由于我使用手动过程来生成3个房屋的列表,即.如何生成一个循环,该循环将自动迭代1000个房屋并输出所需的结果?House_3, House_4, House_5
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

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

试试这个:)


查看完整回答
反对 回复 2022-09-13
?
萧十郎

TA贡献1815条经验 获得超13个赞

所以house_3纬度是纬度,house_4纬度是House_2[0]+1* latitude_diffHouse_2[0] + 2 * latitude_diff


所以你可以做一个列表理解 -


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)


查看完整回答
反对 回复 2022-09-13
?
HUH函数

TA贡献1836条经验 获得超4个赞

查看完整回答
反对 回复 2022-09-13
  • 3 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信