使用标准语法的Python物资检查元素是否是列表:Python如何检查列表中是否存在元素?
if someElement in someList:
实际上被在此执行? Python是否循环遍历每一个索引并检查是否相等,或者是更复杂的实现?
我写的程序运行速度非常慢。没有数学正在执行,但它很大程度上依赖于检查项目是否存在于长列表中。有更快速的解决方案吗?
已解决:检查元素是否在列表中与循环遍历每个项目并检查相等性是否相同。但是,由于项目被散列,因此检查集合中的项目会显着加快。
即使在清单中的项目是unhashable(在我的情况,其他列表),它仍然是值得转换为一个字符串,存储在一组,并在需要时转换回。起初,我认为这很笨重,会降低性能。但是,它确实允许我的程序在几分钟之内完成,而之前几天才会完成。
不要低估检查集合中项目的速度。
https://wiki.python.org/moin/TimeComplexity – paxdiablo