看板 Python 關於我們 聯絡資訊
※ 引述《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”] : 小弟目前的做法是 稍微修改一下 if len(ListA) != len(ListB): assert 'ListA 長度跟 ListB 長度不一致' for a_index, a_str in enumerate(ListA): b_str = ListB[a_index] if b_str in a_str: ListC.append("Yes") else: ListC.append("No") : 這樣子ListC就增加了很多“No”, : 跟我想要的結果不太一樣, : 想了很久不知道該怎麼做 : 還請各位前輩指點一下,謝謝! 酷炫一點的一行解決 ListD = ['Yes' if ListB[a_index] in a_str else 'No' for a_index,a_str in enumerate(ListA)] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.2.203 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1560305338.A.48A.html
a172545056: 真的非常感謝前輩指點!!! 06/12 10:29
TuCH: 突然發現我的方法跟你想要的可能不太一樣 XDDD 06/12 15:15
我發現我誤會你的意思了 正確的code應該是 for a_str in ListA: for b_str in ListB: if b_str in a_str: ListC.append("Yes") break else: ListC.append("No") ※ 編輯: TuCH (114.38.2.203 臺灣), 06/12/2019 15:36:31
idletime: 大大,請問一下,因為我還在初學者,所以都分行(或者 06/26 01:49
idletime: 說比較一步一步),對於一行解,有時看懂有時看不懂。 06/26 01:49
idletime: 我想請問在程式上處理速度是否比較快?一行解是要看什 06/26 01:49
idletime: 麼資料(或關鍵字)? 06/26 01:49