У меня есть два списка, содержащие строки. Первый список содержит список файлов и каталогов:Соответствие подстроки в другой строке
list1 = ['path/to/my/files',
'path/to/more/of/my/files',
'path/to/my/dirs',
'path/to/more/of/mydirs']
второй список содержит каталоги, которые я хочу, чтобы проверить против list1
существования.
list2 = ['path/to/my',
'random/path/to/somewhere',
'path/does/not/matter',
'hey/path/is/here']
Единственные результаты, которые я хочу это path/to/my/*
, но когда я использую str.find()
она возвращается любую строку, содержащую path
или to
или my
независимо от того, где это происходит в строке.
Таким образом, вместо того, чтобы просто получать:
path/to/my/files
path/to/my/dirs
Я получаю все в list1
Мой код следующим образом:
for dir in list2:
for path in list1:
if path.find(dir):
print(path)
Когда вы пишете «список», вы имеете в виду файл или питона 'list'? В коде, который вы разместили здесь, должно быть что-то отсутствует. – jDo
@jDo это список python –
https://docs.python.org/2/library/string.html#string.find, вы также можете просто использовать 'if dir in path', действительно найти используется, если вы хотите индекс, вы не хотите просто посмотреть, соответствует ли он –