У меня есть эти списки, которые являются правильными, сценарий, который необходимо исправить, находится в объяснительной части в конце вопроса.
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']
Я хочу сравнить эти списки, и если в одном из них есть элемент, который уникален, то есть позиция [-3], где число 43001 является уникальным, должен удалить этот элемент. В конце должны остаться только пары с одинаковыми номерами.
Как мне это сделать?
мой код:
for i,v in list(zip(ps,db)):
if i.split("\\")[-3] not in v.split("\\")[-3]:
ps.remove(i)
Объяснение
если списки такие:
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',
'C:\\Users\\user\\Desktop\\sa\\43009\\DBOUND\\DBOUND.shp']
элемент с 43009 должен быть удален, потому что его нет в списке ps
, и в конечном итоге списки будут выглядеть так:
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']