簡體   English   中英

我如何知道在Python中使用哪種數據類型?

[英]How do I know what data type to use in Python?

我正在學習一些關於Python的教程,並且我正在嘗試決定在某種情況下使用什么數據類型/結構。

我不清楚數組,列表,字典和元組之間的差異。

你如何決定哪一個是合適的 - 我目前的理解是不讓我區分它們 - 它們似乎是一回事。

每個人的好處/典型用例有哪些?

您如何決定使用哪種數據類型? 簡單:

你看看哪些是可用的,並選擇一個你想要的。 如果沒有,你就做一個。

在這種情況下,dict是一個非常明顯的解決方案。

計算這樣的元素的最佳類型通常是defaultdict

from collections import defaultdict

s = 'asdhbaklfbdkabhvsdybvailybvdaklybdfklabhdvhba'
d = defaultdict(int)

for c in s:
   d[c] += 1

print d['a']   # prints 7

首先是元組。 這些是類似列表的東西,無法修改。 因為元組的內容不能更改,所以可以使用元組作為字典中的鍵。 在我看來,這對他們來說是最有用的地方。 例如,如果你有一個像item = ["Ford pickup", 1993, 9995]這樣的列表item = ["Ford pickup", 1993, 9995]並且你想在一些內存數據庫中創建價格,你可以嘗試這樣的:

ikey = tuple(item[0], item[1])
idata = item[2]
db[ikey] = idata 

列表,似乎與其他編程語言中的數組或向量類似,通常用於Python中相同類型的事物。 但是,它們更靈活,因為您可以將不同類型的內容放入同一列表中。 通常,它們是最靈活的數據結構,因為您可以將整個列表放入另一個列表的單個列表元素中,但對於實際數據運算,它們可能不夠高效。

a = [1,"fred",7.3]
b = []
b.append(1)
b[0] = "fred"
b.append(a) # now the second element of b is the whole list a

字典經常被用作列表,但現在你可以使用任何不可變的東西作為字典的索引。 但是,與列表不同,詞典沒有自然順序,無法對其進行排序。 當然,您可以創建自己的類,其中包含排序列表和字典,以使dict的行為類似於有序字典。 Python Cookbook網站上有一些例子。

c = {}
d = ("ford pickup",1993)
c[d] = 9995

當您進行重型數據處理並且您不想要列表或字典的褶邊時,數組越來越接近位級別。 它們通常不在科學應用之外使用。 保留這些,直到您確定需要它們為止。

列表和Dicts是Python數據存儲的真正主力。

你真的需要速度/效率嗎? 然后去一個純粹而簡單的詞典。

個人: 我很喜歡使用列表和詞典。 這似乎滿足了大多數情況。

有時:元組可能會有所幫助 - 如果你想配對/匹配元素。 除此之外,我並沒有真正使用它。

但是:我編寫的高級腳本不需要深入到核心“效率”,每個字節和每個內存/納秒都很重要。 我不相信大多數人需要深入鑽探。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM