我寫了一個函數來檢查列表中是否存在一個值,如果存在,則返回True。它適用於完全匹配,但我需要它返回True如果值存在於列表條目中的任何位置(例如,值< = listEntry,我認爲。)以下是我正在使用的函數的代碼:如何檢查字符串列表中是否存在字符串,包括子字符串?
def isValInLst(val,lst):
"""check to see if val is in lst. If it doesn't NOT exist (i.e. != 0),
return True. Otherwise return false."""
if lst.count(val) != 0:
return True
else:
print 'val is '+str(val)
return False
沒有循環遍歷整個字符串和/或使用正則表達式(除非那些效率最高),我該如何以pythonic的方式去解決這個問題?
這與another SO question非常相似,但我需要檢查列表中任何位置是否存在ENTIRE val字符串。返回匹配的索引/索引也是很好的,但我確信這在Stackoverflow的其他地方已經介紹過了。
我忘了提及,我也嘗試過使用any()和all()沒有成功的列表理解上的弱點。它總是返回True,所以我假設它匹配任何(或全部無序)子字符串來列出條目。這裏是我試過的: 如果有的話(x中的b代表x中的a): return True – TheProletariat
你可以在這裏添加你的代碼到任何()和all(),這樣我就可以查看它 – user1050619
這只是另一個解決方法:'用b代替x中的b代替'中的x'(你想檢查你的密鑰是否在列表中的任何元素中)。 – poke