首页 > 解决方案 > Python:用列表理解替换 for 循环

问题描述

我对 python 还很陌生,列表推导并不是我的强项。但是,我需要一些帮助,将嵌套的 for 循环减少为单个语句,如列表推导式。我所拥有的是:

 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

任何帮助表示赞赏,我正在尝试摆脱“附加”

标签: pythonpython-3.xlistlist-comprehension

解决方案


使用集合交点:

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'}

推荐阅读