簡體   English   中英

Python-遍歷列表A和匹配列表B中包含的單詞

[英]Python - Loop Through List A and Match Words Contained in List B

假設我有兩個列表:

foo = ['hell', 'good', 'bad']
bar = ['hello', 'goodbye', 'goodness', 'badly', 'baddest']

我想對foo進行排序,看看bar中是否有任何單詞不僅匹配而且包含foo,以獲得類似以下內容:

hell = hello
good = goodbye goodness
bad = badly baddest
one = ['hell','good','bad']
two = ['hello', 'goodbye', 'goodness', 'badly', 'baddest']

for a in one:
    print a,'=',
    for b in two:
        if a in b:
            print b,
    print

輸出:

hell = hello
good = goodbye goodness
bad = badly baddest

非常簡單的問題,有很多解決方法。 如果沒有匹配項,則此版本不會打印出“等於”行:

foo = ["hell", "good", "bad", "fail"]
bar = ["hello", "goodbye", "goodness", "badly", "baddest", "nomatch"]

for f in foo:
    matches = [b for b in bar if f in b]
    if len(matches) > 0:
        print(f,"="," ".join(matches))

輸出:

hell = hello
good = goodbye goodness
bad = badly baddest

請注意,它不會輸出“失敗”。 如果您希望它打印單詞“ fail”,請刪除if語句。 甚至可以將代碼減少到一行,盡管我認為這是非常難以理解的一行:

[print(f,"="," ".join(b for b in bar if f in b)) for f in foo]

暫無
暫無

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

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