Python對象的list如何快速按照屬性查找
Python對象的list快速按照屬性查找
比如在
class demo():
a = 0
b = 0這一個類的元素組成的列表demo_list中查找元素,使得a = x
樸素的方法是遍歷,如果a有序還可二分等
但是時間復(fù)雜度最小也就nlog(n)
在空間足夠大的情況下,其實可以用一個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)的查找(因為dict是一個哈希 有key可以直接查表找value 倘若沒有返回default 默認(rèn)是None,當(dāng)然缺點是空間浪費)
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)計成員出現(xiàn)的次數(shù)
list1.count(5)
- 返回列表中的最大值
max(list1)
- 返回列表中的最小值
min(list1)
- 顛倒所有元素
list1.reverse()
- 列表排序 False 升序
list1.sort(reverse=True)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用ffmpeg實現(xiàn)mp4與m3u8相互轉(zhuǎn)換
FFmpeg 是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序,它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案,下面小編就和大家詳細(xì)介紹一下吧2025-11-11
Python+Matplotlib實現(xiàn)給圖像添加文本標(biāo)簽與注釋
這篇文章主要為大家分享一下如何使用python+matplotlib給繪制的圖像添加文本標(biāo)簽與注釋。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-04-04
使用Python高效讀取ZIP壓縮文件中的JSON數(shù)據(jù)
本文將詳細(xì)介紹如何使用Python快速高效地讀取ZIP壓縮文件中的UTF-8編碼JSON文件,并將其轉(zhuǎn)換為Pandas DataFrame和PySpark DataFrame,感興趣的小伙伴可以了解下2025-10-10

