【发布时间】:2018-11-19 14:02:39
【问题描述】:
我有两个列表: 这个:
列表1
['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']
还有这个:
列表2
['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
如何保证pairs与zip后其他列表中对应的同名匹配?
也许我们与他们以前的文件夹匹配? 喜欢:
if list1[0].split('\\')[-2] == list2[0].split('\\')[-2]:
final = [(f,s) for f,s in zip(list1,list2)]
final
【问题讨论】:
-
zip保留顺序。我不清楚你在问什么。 -
在第二个列表中,第三个项目在第一个列表中不存在。会配对错误
-
那么所有后续项目也会如此吗?
-
是的,这就是为什么它需要做一些条件来确保它能够很好地配对。
-
为什么不
[x for x in list1 if x in list2]?你需要zip做什么?