2014-03-29 62 views
0

我需要在列表或字典中添加項目或編輯項目。python:列表和字典之間的數據結構效率

名單不便像 [10, 15, 42, 78]

本字典是水木清華像 {0: 10, 1: 15, 2: 42, 3: 78}

哪一個更有效?

+0

只需用'list'即可。在這個特殊情況下沒有任何一個字典 – sshashank124

+4

https://wiki.python.org/moin/TimeComplexity –

+0

雖然'字典'會在編輯時給你更快的查找性能,但是對於你的情況'list'是一個更好的選擇。 –

回答

2

這真的取決於。

當您測試成員資格(即needle in haystack)字典是更好的選擇(因爲它在O(1)中運行而不是在列表上的O(n))。當你迭代這些值時,列表是要走的路。

兩者之間存在幾種效率折衷,每種情況都需要不同的分析。沒有'最好'的數據結構。

查看this page,詳細比較列表,deques,字典和集合上各種操作的運行時間。

-3

取決於您的效率。

說到速度,列表會更快,但字典更容易組織和使用密鑰訪問。

+1

「談到速度,列表會更快」?當談到速度做什麼? – Hyperboreus

+0

記憶和迭代。 – Granitas

+1

那麼使用列表時內存會更快?速度與內存有什麼關係? – Hyperboreus