Python對象的list如何快速按照屬性查找
Python對象的list快速按照屬性查找
比如在
class demo(): a = 0 b = 0
這一個類的元素組成的列表demo_list中查找元素,使得a = x
樸素的方法是遍歷,如果a有序還可二分等
但是時間復(fù)雜度最小也就nlog(n)
在空間足夠大的情況下,其實(shí)可以用一個dict存儲demo中元素a的值。其中dict的key = a, value = 對應(yīng)的下標(biāo)
dict_a = {} i = 0 for demo in list_demo: dict_a['demo.a'] = i i += 1 return dict_a.get(x, default=-1)
這樣就可以對a進(jìn)行O(1)的查找(因?yàn)閐ict是一個哈希 有key可以直接查表找value 倘若沒有返回default 默認(rèn)是None,當(dāng)然缺點(diǎn)是空間浪費(fèi))
python列表list屬性
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] list2 = [‘a(chǎn)aa', 1, 3.14, ‘love you', [1, 2, 3]]
- 判斷數(shù)據(jù)類型
type(list1)
- 取列表元素成員數(shù)
len(list1)
- 后面插入單個元素
list1.append(1)
- 插入多個元素
list1.extend([2, 1])
- 在列表指定位置插入指定數(shù)值
list1.insert(2, 8)
- 列表元素的替換
list1[1] = 0
- 刪除指定位置的元素
list1.pop(2)
- 刪除列表的指定元素
list1.remove(5)
- 清空列表的所有元素,列表還存在
list1.clear()
- 刪除列表
del (list1)
- 查找成員的下標(biāo),后面是下標(biāo)范圍
list1.index(9, 2, 8)
- 統(tǒng)計(jì)成員出現(xiàn)的次數(shù)
list1.count(5)
- 返回列表中的最大值
max(list1)
- 返回列表中的最小值
min(list1)
- 顛倒所有元素
list1.reverse()
- 列表排序 False 升序
list1.sort(reverse=True)
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用virtualenv創(chuàng)建虛擬環(huán)境的詳細(xì)步驟
這篇文章主要介紹了Python使用virtualenv創(chuàng)建虛擬環(huán)境的詳細(xì)步驟,本文分步驟給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-05-05使用Pycharm創(chuàng)建一個Django項(xiàng)目的超詳細(xì)圖文教程
Django是比較經(jīng)典的Python web框架,最近剛好在項(xiàng)目中用到了Django,所以下面這篇文章主要給大家介紹了關(guān)于使用Pycharm創(chuàng)建一個Django項(xiàng)目的超詳細(xì)圖文教程,文中介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Python 二進(jìn)制字節(jié)流數(shù)據(jù)的讀取操作(bytes與bitstring)
本文主要介紹了Python 二進(jìn)制字節(jié)流數(shù)據(jù)的讀取操作(bytes與bitstring),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Pytorch中關(guān)于RNN輸入和輸出的形狀總結(jié)
這篇文章主要介紹了Pytorch中關(guān)于RNN輸入和輸出的形狀總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python設(shè)計(jì)模式之享元模式原理與用法實(shí)例分析
這篇文章主要介紹了Python設(shè)計(jì)模式之享元模式原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了享元模式的相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下2019-01-01