从for循环中的列表访问内容?

2024-09-25 00:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我想不出解决办法:

我有这个清单:shapefiles

我想为列表中的每个shapefile创建一个进程,但问题是它是一个列表列表:

for i in shapefiles:
    inte_s = gpd.read_file(i) #Apparently it is wrong to just use i.
    etc..

如何让它从列表中一次访问每一个?你知道吗

要了解列表是如何显示的,请检查这些测试。你知道吗

shapefiles[0]
['C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTA\\INTE1.shp',
 'C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTB\\INTE1.shp']

for i in shapefiles:
    print(i)
['C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTA\\INTE1.shp', 
'C:\\Users\\user\\Desktop\\fffff\\INTE_PST_NO_EK_WITH_ASTTOM\\INTE_SHP_TESTB\\INTE1.shp']

for i in shapefiles:
    print(i[0])
C:\Users\user\Desktop\fffff\INTE_PST_NO_EK_WITH_ASTTOM\INTE_SHP_TESTA\INTE1.shp

for i in shapefiles:
    print(i[1])
C:\Users\user\Desktop\fffff\INTE_PST_NO_EK_WITH_ASTTOM\INTE_SHP_TESTB\INTE1.shp

Tags: no列表withusersdesktopshpuserek
2条回答

您有一个列表列表,所以请先将其展平,然后使用循环

shapefiles_flat = [file_ for sublist in shapefiles for file_ in sublist]

for i in shapefiles_flat:
      #read

你好像有一张单子。shapefiles的每个元素本身就是两个文件名的列表。所以,我建议只嵌套两个循环:

for i in shapefiles:
    for j in i:
        inte_s = gpd.read_file(j)
        # etc...

相关问题 更多 >