簡體   English   中英

將列表 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

我想要腳本做的是“比較”這兩個列表和 output 結果到文件 result.txt,在那里我可以將列表中的每個字符串放在列表 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 )的結果文件

    • 構建 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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM