[問卦] Python 怎麼到現在還沒內建 sortedMap ??
這裡所謂的 sorted map 指的是以key值進行排序的 map,
不管讀取增加還是刪除的時間複雜度都是 o(log n)
這種map Java在1.2版就已經有了,
而我剛剛才發現Python的標準函式庫到現在還沒有 zzzzzzzzzzzzzzzzzzzzzzzzz
他媽的總不會要使用者自己實現紅黑樹吧? 幹你娘勒
有沒有Python到現在還沒有sorted map 的八卦啊?
--
「他不能睡車上嗎?」 ~中野二乃
https://i.imgur.com/s9ENvjt.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.198.27.180 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1573326040.A.B60.html
推
11/10 03:03,
4年前
, 1F
11/10 03:03, 1F
推
11/10 03:05,
4年前
, 2F
11/10 03:05, 2F
→
11/10 03:05,
4年前
, 3F
11/10 03:05, 3F
Java很好啊 Java臭了嗎?臭了嗎?臭了嗎?臭了嗎?
→
11/10 03:05,
4年前
, 4F
11/10 03:05, 4F
測資這個你隨便寫都很可以吧
→
11/10 03:06,
4年前
, 5F
11/10 03:06, 5F
→
11/10 03:06,
4年前
, 6F
11/10 03:06, 6F
→
11/10 03:11,
4年前
, 7F
11/10 03:11, 7F
不是,ordered dictionary 是會保留「插進來的順序」,
這個在Java 的對應是 LinkedHashMap
我現在是要一個能對key排序的map,也就是我插入 (3,2) (1,3) (2,5),
依序丟出來的entry pairs 會是 (1,3) (2,5) (3,2)
→
11/10 03:12,
4年前
, 8F
11/10 03:12, 8F
→
11/10 03:16,
4年前
, 9F
11/10 03:16, 9F
→
11/10 03:16,
4年前
, 10F
11/10 03:16, 10F
推
11/10 03:24,
4年前
, 11F
11/10 03:24, 11F
推
11/10 03:30,
4年前
, 12F
11/10 03:30, 12F
→
11/10 03:35,
4年前
, 13F
11/10 03:35, 13F
→
11/10 03:36,
4年前
, 14F
11/10 03:36, 14F
推
11/10 03:42,
4年前
, 15F
11/10 03:42, 15F
噓
11/10 03:42,
4年前
, 16F
11/10 03:42, 16F
推
11/10 03:45,
4年前
, 17F
11/10 03:45, 17F
→
11/10 03:45,
4年前
, 18F
11/10 03:45, 18F
推
11/10 03:46,
4年前
, 19F
11/10 03:46, 19F
→
11/10 03:46,
4年前
, 20F
11/10 03:46, 20F
推
11/10 03:48,
4年前
, 21F
11/10 03:48, 21F
推
11/10 03:50,
4年前
, 22F
11/10 03:50, 22F
→
11/10 03:50,
4年前
, 23F
11/10 03:50, 23F
推
11/10 03:59,
4年前
, 24F
11/10 03:59, 24F
推
11/10 04:02,
4年前
, 25F
11/10 04:02, 25F
→
11/10 04:06,
4年前
, 26F
11/10 04:06, 26F
→
11/10 04:06,
4年前
, 27F
11/10 04:06, 27F
→
11/10 04:08,
4年前
, 28F
11/10 04:08, 28F
→
11/10 04:08,
4年前
, 29F
11/10 04:08, 29F
不是 = = 你可以跑跑看下面這個:
x = dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
for i in x.keys():
print(i)
他印出來的東西絕對不是按照順序
噓
11/10 04:33,
4年前
, 30F
11/10 04:33, 30F
推
11/10 04:46,
4年前
, 31F
11/10 04:46, 31F
→
11/10 04:48,
4年前
, 32F
11/10 04:48, 32F
→
11/10 04:49,
4年前
, 33F
11/10 04:49, 33F
→
11/10 04:51,
4年前
, 34F
11/10 04:51, 34F
→
11/10 05:50,
4年前
, 35F
11/10 05:50, 35F
→
11/10 05:50,
4年前
, 36F
11/10 05:50, 36F
→
11/10 05:50,
4年前
, 37F
11/10 05:50, 37F
https://repl.it/languages/python
Python 2.7.16
x = dict([('sape', 4139), ('guid', 4127), ('aack', 4098)])
for i in x.keys():
print(i)
Output:
aack
sape
guid
他如果built-in map 是sorted map 那問題更大
→
11/10 06:08,
4年前
, 38F
11/10 06:08, 38F
推
11/10 06:12,
4年前
, 39F
11/10 06:12, 39F
推
11/10 06:14,
4年前
, 40F
11/10 06:14, 40F
→
11/10 06:15,
4年前
, 41F
11/10 06:15, 41F
推
11/10 06:16,
4年前
, 42F
11/10 06:16, 42F
→
11/10 06:16,
4年前
, 43F
11/10 06:16, 43F
→
11/10 06:16,
4年前
, 44F
11/10 06:16, 44F
→
11/10 06:20,
4年前
, 45F
11/10 06:20, 45F
不是啊 output 結果是 aack sape guid 這怎麼會是sorted 的結果?
Python 2.7.17 Documentation 裡面寫得很明白:
"The keys() method of a dictionary object returns a list of all the keys used
in the dictionary, in arbitrary order (if you want it sorted, just apply the
sorted() function to it)."
Link: https://docs.python.org/2/tutorial/datastructures.html
推
11/10 06:40,
4年前
, 46F
11/10 06:40, 46F
→
11/10 06:40,
4年前
, 47F
11/10 06:40, 47F
→
11/10 06:40,
4年前
, 48F
11/10 06:40, 48F
推
11/10 06:54,
4年前
, 49F
11/10 06:54, 49F
→
11/10 06:54,
4年前
, 50F
11/10 06:54, 50F
→
11/10 06:55,
4年前
, 51F
11/10 06:55, 51F
推
11/10 06:57,
4年前
, 52F
11/10 06:57, 52F
→
11/10 06:58,
4年前
, 53F
11/10 06:58, 53F
這個sortedcontainers算是一統天下了嗎? 我是裝大蟒蛇沒錯
推
11/10 07:05,
4年前
, 54F
11/10 07:05, 54F
是的
推
11/10 07:20,
4年前
, 55F
11/10 07:20, 55F
推
11/10 07:58,
4年前
, 56F
11/10 07:58, 56F
噓
11/10 09:18,
4年前
, 57F
11/10 09:18, 57F
推
11/10 09:52,
4年前
, 58F
11/10 09:52, 58F
推
11/10 10:06,
4年前
, 59F
11/10 10:06, 59F
噓
11/10 10:20,
4年前
, 60F
11/10 10:20, 60F
https://www.geeksforgeeks.org/ordereddict-in-python/
The only difference between dict() and OrderedDict() is that:
OrderedDict preserves the order in which the keys are inserted.
推
11/10 10:27,
4年前
, 61F
11/10 10:27, 61F
推
11/10 10:32,
4年前
, 62F
11/10 10:32, 62F
※ 編輯: arrenwu (71.198.27.180 美國), 11/10/2019 11:53:32
推
11/10 13:03,
4年前
, 63F
11/10 13:03, 63F
→
11/10 15:33,
4年前
, 64F
11/10 15:33, 64F