其他分享
首页 > 其他分享> > 使用集合判断成员是否存在(性能)

使用集合判断成员是否存在(性能)

作者:互联网

要判断某个容器是否包含特定成员,用集合比用列表更合适。集合底层使用了哈希表数据结构。
要判断集合中是否存在某个对象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