[英]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.