繁体   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