Saya akan membuat pembungkus sehingga Anda bisa menjadi non-invasif. Minimal, misalnya ...:
class CaseInsensitively(object):
def __init__(self, s):
self.__s = s.lower()
def __hash__(self):
return hash(self.__s)
def __eq__(self, other):
# ensure proper comparison between instances of this class
try:
other = other.__s
except (TypeError, AttributeError):
try:
other = other.lower()
except:
pass
return self.__s == other
Sekarang, if CaseInsensitively('MICHAEL89') in whatever:
harus berperilaku seperti yang diminta (apakah sisi kanan adalah daftar, dikt, atau ditetapkan). (Mungkin perlu lebih banyak upaya untuk mencapai hasil serupa untuk penyertaan string, menghindari peringatan dalam beberapa kasus yang melibatkan unicode
, dll).
if 'CaseFudge'.lower() in [x.lower() for x in list]