从for循环中的列表中获取配对?

时间:2018-08-27 09:06:40

标签: python list loops

我相应地收集了以PST.shpDBOUND.shp结尾的文件。然后将其保存为代码显示的列表。

列表ps

['C:\\Users\\user\\Desktop\\sa\\43001\\PST\\PST.shp',
 'C:\\Users\\user\\Desktop\\sa\\43003\\PST\\PST.shp']

db

['C:\\Users\\user\\Desktop\\sa\\43001\\DBOUND\\DBOUND.shp',
 'C:\\Users\\user\\Desktop\\sa\\43003\\DBOUND\\DBOUND.shp']

稍后,应该处于循环中,该循环使用每个列表中的第一对并执行操作。然后第二对,依此类推:

赞:

for i in list(zip(ps,db)):
    db1 = gpd.read_file(db[0])
    pst1 = gpd.read_file(ps[0])
    db1['geometry'] = dbound.buffer(0.001)
    wdp = gpd.sjoin(pst1, db1, how="left", op='within')

问题是如何在不设置[0]的情况下每次都执行此操作,但是会在每次迭代中对所有现有对自动进行设置?

更新

在导出过程中,每次导出将替换循环中的上一个方法,即如何在具有原始文件夹名称的文件夹中分别导出它们,如下所示: 如果目录为'C:\ Users \ user \ Desktop \ sa \ 43001 \ PST \ PST.shp`,则创建一个名为43001的文件夹,并具有导出的文件,其余文件相同。这是我的导出代码。

    o = r'C:\Users\user\Desktop\resultss'
    out = o+'\\'+'pst'
    wdp.to_file(out)

1 个答案:

答案 0 :(得分:3)

您可以只使用zip

例如:

for i, v in zip(ps,db):
    db1 = gpd.read_file(v)
    pst1 = gpd.read_file(i)
    db1['geometry'] = dbound.buffer(0.001)
    wdp = gpd.sjoin(pst1, db1, how="left", op='within')