Re: [問題] Python新手 for迴圈問題

作者: jordan0740 (鋒仔)   2019-06-12 16:29:12
※ 引述《a172545056 (Leon)》之銘言:
: 各位前輩大家好,我是剛接觸python不久的新人,目前練習到for迴圈時有點卡關,想請
: 教一下各位前輩
: 我有三個List
: ListA=[“Apple”,“food”,“Iron”]
: ListB=[“x”,“z”,“on”]
: ListC=[]
: 今天我想知道ListA中的字串是否有包含ListB的字串,有的話ListC.append(“YES”),沒
: 有的話ListC.append(“No”),
: 我想得到的結果是ListC[“No”,“No”,“Yes”]
: 小弟目前的做法是
: for a_str in ListA:
: for b_str in ListB:
: if b_str in a_str:
: ListC.append(“Yes”)
: continue
: else:
: ListC.append(“No”)
: 這樣子ListC就增加了很多“No”,
: 跟我想要的結果不太一樣,
: 想了很久不知道該怎麼做
: 還請各位前輩指點一下,謝謝!
目前想到最有效率的寫法
ListA=["Apple","food","Iron"]
ListB=["x","z","on"]
ListC=["No","No","No"]
for i in range(len(ListA)):
if ListB[i] in ListA[i]:
ListC[i] = "Yes"
print(ListC)
作者: iphone2003 (307)   2019-06-12 20:45:00
如果要少行一點ListC=[]for idx, (a, b) in enumerated(zip(ListA,ListB)):if b in a:ListC.append('Yes')else:ListC.append('No')
作者: a172545056 (Leon)   2019-06-13 09:21:00
謝謝兩位前輩指點!
作者: Conjuror (阿糾)   2019-06-13 10:07:00
zip 應該是比較直覺的解,不懂為什麼要 enumeratedfor a, b in zip(ListA, ListB):
作者: iphone2003 (307)   2019-06-14 14:25:00
對...不小心多放了enumerate

Links booklink

Contact Us: admin [ a t ] ucptt.com