Python: Заменить циклы на понимание списка - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в python, и понимание списка не является моей сильной стороной. Однако мне нужна помощь в сокращении вложенного for l oop в один оператор, например, понимание списка. У меня есть:

 source_file_list = ['file1', 'file2', 'file3', 'file4', 'file5', 'file6']
 test_file_list = ['file1', 'file3', 'file5']

 for i in range(len(source_file_list)):
    for j in range(len(test_file_list)):
        if test_file_list[j] in source_file_list[i]:
            file_match_list.append(source_file_list[i])
            break

Любая помощь приветствуется, я пытаюсь избавиться от «добавления»

1 Ответ

1 голос
/ 01 августа 2020

Использовать заданные пересечения:

source_file_list = ['file1', 'file2', 'file3', 'file4', 'file5', 'file6']
test_file_list = ['file1', 'file3', 'file5']

file_match_list = set(test_file_list).intersection(source_file_list)

print(file_match_list) # {'file5', 'file1', 'file3'}
...