python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python对象的list快速按照属性查找

Python对象的list如何快速按照属性查找

作者:bouIevard

这篇文章主要介绍了Python对象的list如何快速按照属性查找问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python对象的list快速按照属性查找

比如在

class demo():
    a = 0
    b = 0

这一个类的元素组成的列表demo_list中查找元素,使得a = x

朴素的方法是遍历,如果a有序还可二分等

但是时间复杂度最小也就nlog(n)

在空间足够大的情况下,其实可以用一个dict存储demo中元素a的值。其中dict的key = a, value = 对应的下标

dict_a = {}
i = 0
for demo in list_demo:
    dict_a['demo.a'] = i
    i += 1
return dict_a.get(x, default=-1)

这样就可以对a进行O(1)的查找(因为dict是一个哈希 有key可以直接查表找value 倘若没有返回default 默认是None,当然缺点是空间浪费)

python列表list属性

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list2 = [‘aaa', 1, 3.14, ‘love you', [1, 2, 3]]
type(list1)
len(list1)
list1.append(1)
list1.extend([2, 1])
list1.insert(2, 8)
list1[1] = 0
list1.pop(2)
list1.remove(5)
list1.clear()
del (list1)
list1.index(9, 2, 8)
list1.count(5)
max(list1)
min(list1)
list1.reverse()
list1.sort(reverse=True)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文