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()
- 列表排序 False 升序
list1.sort(reverse=True)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。