вы на самом деле не используете свой словарь.Я предлагаю перестроить другой словарь с файлом name в качестве ключа (используя os.path.basename
, а не str.split
), оставив полный путь и список в виде набора значений
import os
data = {'C:\\Users\\user\\Desktop\\05052\\ASTTOM\\ASTTOM': [],
'C:\\Users\\user\\Desktop\\05052\\ASTIK\\ASTIK': [],
'C:\\Users\\user\\Desktop\\05052\\ROADS\\ROADS': []}
new_data = {os.path.basename(path): (path,value) for path,value in data.items()}
как это выглядит:
>>> new_data
{'ASTIK': ('C:\\Users\\user\\Desktop\\05052\\ASTIK\\ASTIK', []),
'ASTTOM': ('C:\\Users\\user\\Desktop\\05052\\ASTTOM\\ASTTOM', []),
'ROADS': ('C:\\Users\\user\\Desktop\\05052\\ROADS\\ROADS', [])}
Тогда вы можете O(1)
поиск и тест:
shape1 = "ASTIK"
print(shape1 in new_data,new_data.get(shape1))
отпечатки:
True ('C:\\Users\\user\\Desktop\\05052\\ASTIK\\ASTIK', [])
(потому чтозначение находится в словаре, а get
извлекает данные