我有一個字符串列表。我試圖刪除具有特定子字符串的元素。如果我用下面,被刪除只包含「坎特」元素:多條件if語句字符串關鍵字:in,不在
for line in merged:
if 'Duke' in line and 'Sir' not in line or 'Cantab' in line or 'Rick' in line:
merged.remove(line)
如果我嘗試向上突破的條件,我的目標結果沒有實現,但我成功地刪除包含杜克的元素,但不杜克爵士:
if 'Duke' in line and 'Sir' not in line:
merged.remove(line)
這按預期工作:
if 'Duke' in line and 'Sir' not in line:
merged.remove(line)
elif 'Cantab' in line:
merged.remove(line)
但下面只刪除含有 '坎特' 元素!!!:
if 'Duke' in line and 'Sir' not in line:
merged.remove(line)
elif 'Cantab' in line:
merged.remove(line)
elif 'Rick' in line:
merged.remove(line)
我在這裏遇到麻煩搞清楚的邏輯。謝謝!
您正在使用一個'if語句',這意味着如果其中一個分支被採用,則其餘的將不被考慮。相反,嘗試將每個條件分隔成一個單獨的'if語句'。即用'if'代替'elif's。看看是否有幫助。 – s16h