python - Python比较不同数据类型的排序
问题描述
Python。我试图找到对不同数据类型进行排序的任何信息。例如:“哪种类型的数据排序更快:列表还是字典?” 或“哪种类型的数据排序更快:列表、字典、元组还是集合?” 为什么?也许这是个错误的问题?我想知道在哪里可以了解我的问题。我试图用谷歌搜索,但一无所获。
我正在寻找任何理论信息
解决方案
数据类型不会影响排序速度,至少不会直接影响。随数据类型而“可能”改变的是访问或修改数据的时间。但即便如此,它也是有条件的,因为没有“一种最佳数据类型”。
有些数据是可变的。这意味着它可以被修改,例如列表。
my_list = [1,2,3,4]
my_list[2] = 6
# Prints: [1,2,6,4]
print(my_list)
但其他类型是不可变的,这意味着它们无法更改。元组就是这种情况。
my_tuple = (1,2,3,4)
#Throws: TypeError: 'tuple' object does not support item assignment
my_tuple[2] = 6
print(my_tuple)
因此,要修改不可变对象,您必须复制所有内容并将新数字放入内存中(注意。不可变对象在许多情况下都很棒,但那是另一天的事了)。因此,仅对排序算法使用元组可能不是一个好主意。
现在 !...
排序时真正重要的是排序算法。为了优化,排序算法可能会混合使用可变和不可变数据类型,但这不是您应该关注的。归根结底,您应该先了解排序算法的工作原理,然后再尝试优化它们。您应该学习我们在计算机科学中所说的“大 O 表示法”,它评估算法的复杂性。
因此,为了更好地使用排序算法,我建议您使用以下链接:
然后,当您了解算法的工作原理后,您可能想深入研究 Python 的核心。您可以使用timeit来评估每种数据类型的“访问时间”,并尝试在 Python 中获得更多的排序能力......但不要在 Python 中进行那种算法优化,这是一个陷阱!Python 非常适合快速开发有效的软件,但 Python 很慢。如果您想要RAW POWER,请在 C 或 C++ 中实现算法,然后将这些文件扩展到 Python,这里是如何做到的。
推荐阅读
- kernel - 在已安装的内核中启用活页夹
- tensorflow - 解释递归神经网络特征 (RNN/LSTM)
- css - Google chrome 开发工具无法按照我的输入值工作
- python - 实现余弦相似度损失给出了与 Tensorflow 不同的答案
- javascript - 为什么ajax会重新加载页面
- graphql - “消息”:“位置 0 的 JSON 中的意外令牌 <”,“堆栈”:“SyntaxError:位置 0 的 JSON 中的意外令牌 <”
- r - 如何通过 R 中的单个空格 gsub 数据框中的所有多个空格
- react-native-android - 反应本机应用清单文件中的 requestLegacyExternalStorage 标志
- dialog - gcc 对话框库未链接
- session - 当您创建用户并登录到服务器时,该会话是否也基于?服务器是否对其注册用户使用相同的身份验证?