确保相同名称的文件将始终匹配?

时间:2018-11-19 14:02:39

标签: python list loops

我有两个清单: 这个:

list1

['C:\\Users\\user\\Desktop\\programs1\\merge\\AST\\AST.shp',
 'C:\\Users\\user\\Desktop\\programs1\\merge\\ASTI\\ASTI.shp',
 'C:\\Users\\user\\Desktop\\programs1\\merge\\ASTO\\ASTO.shp']

这:

list2

['C:\\Users\\user\\Desktop\\programs\\merge\\AST\\AST.shp',
 'C:\\Users\\user\\Desktop\\programs\\merge\\ASTI\\ASTI.shp',
 'C:\\Users\\user\\Desktop\\programs\\merge\\AWE\\AWE.shp',  #THIS IS EXTRA
 'C:\\Users\\user\\Desktop\\programs\\merge\\ASTO\\ASTO.shp']

然后压缩:

final = [(f,s) for f,s in zip(list1,list2)]
final

如何确保该对与zip后另一个列表上的对应同名匹配?

也许我们与他们以前的文件夹匹配? 喜欢:

if list1[0].split('\\')[-2] == list2[0].split('\\')[-2]:
      final = [(f,s) for f,s in zip(list1,list2)]
      final

1 个答案:

答案 0 :(得分:0)

我希望我能正确理解要获取匹配的对(例如,根据示例中的倒数第二个文件夹-您可以根据自己的条件进行自定义)。然后我要做的就是这样:

dict1 = {path.split('\\')[-2]: path for path in list1}
dict2 = {path.split('\\')[-2]: path for path in list2}
common = set(dict1) & set(dict2)
pairs = [(dict1[element], dict2[element]) for element in common]