#Python dict/set 自動排序

1 messages · Page 1 of 1 (latest)

novel kestrel
#

我需要這麼一個Python資料結構,有以下功能:
1, 刪除/添加 元素的時間複雜度低
2, 能以低時間複雜度找出元素最大值
3, 有計數器(Counter)功能

但是Python的dictionary和set都不會自動排序,queue在刪除中間元素的時候也會有障礙。
有什麼模組是支援這種資料結構的嗎

latent yarrow
#

花賭U命 低時間複雜度

#

要麼就是每次插入都排序,要麼就是花時間找最大值

idle gazelle
#

順帶一提 基本上py的內建函數是最快的 所以最多就是從資料結構下手

elfin helm
#

內建沒有這東西,Python 實作都是 hash,不能排序
外面套件有個 SortedContainer 好像有包好的樣子

idle gazelle
#

dict好像在3.x開始就是有序的

elfin helm
idle gazelle
#

lamo_3 或是直接把set unpack到list也不是不行

#
data: list

[*{*data}]
elfin helm
#

有序的話就是用紅黑樹,但 Python 實作就是 hash

idle gazelle
#

或是直接```py
sorted({*data})

elfin helm
elfin helm
idle gazelle
#

確實

#

不然就是放進去的時候先sort過

#

insert sort的放入也可以