使用集合判断成员是否存在(性能)
作者:互联网
要判断某个容器是否包含特定成员,用集合比用列表更合适。集合底层使用了哈希表数据结构。
要判断集合中是否存在某个对象obj,python只需先用hash(obj)算出它的哈希值,然后直接去
哈希表对应位置检查obj是否存在即可,根本不需要关心哈希表的其他部分。
如代码需要进行in判断,可以考虑把目标容器转换成集合类型,作为查找时的索引使用
VALID_NAMES = ['jack', 'mike', 'nancy', 'tom', ...] # 列表中数据量越大越好,当数据量小时,直接用in即可,而不用转换为set再用in判断
VALID_NAMES_SET = set(VALID_NAMES)
def validate_name(name):
if name not in VALID_NAMES_SET:
raise ValueError(f'{name} is not a valid name!')
标签:obj,name,性能,VALID,NAMES,哈希,集合,成员 来源: https://www.cnblogs.com/weiweivip666/p/16660327.html