if 'MICHAEL89' in (name.upper() for name in USERNAMES): ...或者:if 'MICHAEL89' in map(str.upper, USERNAMES): ...或者,可以的,您可以定制方法。
通常(至少在oop中),您可以使对象成形为所需的行为。name in USERNAMES不区分大小写,因此USERNAMES需要更改:class NameList(object): def __init__(self, names): self.names = names def __contains__(self, name): # implements `in` return name.lower() in (n.lower() for n in self.names) def add(self, name): self.names.append(name)# now this worksusernames = NameList(USERNAMES)print someone in usernames这样做的好处在于,它无需进行任何类外的代码更改,便可以进行许多改进。例如,您可以将更self.names改为一组以进行更快的查找,或者(n.lower() for n in self.names)仅计算一次并将其存储在类中,依此类推...