将列表 A 中的所有字符串匹配到列表 B 中的每个字符串

Match all strings from list A to every strings from list B

我正在寻求编写脚本(最好是 python)的帮助,以比较两个列表。任务:

我在文件 a.txt 中有文件名列表: 示例:

ABC
BCD
DEF
EDC

和列表中的字符串列表 b.txt:

A
B
C
D
E
F
G

我想要脚本做的是“比较”这两个列表并将结果输出到文件 result.txt,在那里我可以让列表 a 中的每个字符串紧挨着列表 b.txt 的所有匹配项所以,例如,result.txt 对于上面的列表看起来像:

ABC|A,B,C
BCD|B,C,D
DEF|D,E,F
EDC|E,D,C

我可以补充一下,两个列表都很大,列表 a 有 60k 行,列表 b 几 k。

非常感谢您的帮助!谢谢

  1. 从数据文件

    构建列表A_listB_list
  2. 循环遍历第一个列表 (A_list)

    提供的文件名 (a) 写入结果文件
    • 构建第二个列表 (B_list) 中 a 元素
    • 中的元素 (b) 的 matches 列表
    • 如果不需要不匹配的文件名,可选择跳过循环结尾
    • 写入文件名加入匹配项的结果行
with open("a.txt", 'r') as f:
    A_list = f.read().splitlines()
with open("b.txt", 'r') as f:
    B_list = f.read().splitlines()
    
with open('result.txt', 'w') as f:
    for a in A_list:
        matches = [b for b in B_list if b in a]
        if not matches: continue  # optional
        f.write(f"{a}|{','.join(matches)}\n")