Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python与C#字典_C#_Python_Dictionary - Fatal编程技术网

Python与C#字典

Python与C#字典,c#,python,dictionary,C#,Python,Dictionary,我用Python编写代码已经有一段时间了,我习惯于认为字典的时间复杂度是最差的()。然而,在工作中我不得不使用C语言,而我最近才发现C语言中的词典具有更好的时间复杂度()。为什么呢?python字典比C字典有什么优势 顺便问一下,哪种实现更常见?如果我不得不使用另一种语言标准库中的词典,它们最有可能具有什么时间复杂性 谢谢 MSDN文档谈到了平均案例时间复杂性(更具体地说,他们说复杂性“接近”给定的函数),这些与Python文档中介绍的相同。Python还提供了最坏情况的复杂性。对于某些操作,M

我用Python编写代码已经有一段时间了,我习惯于认为字典的时间复杂度是最差的()。然而,在工作中我不得不使用C语言,而我最近才发现C语言中的词典具有更好的时间复杂度()。为什么呢?python字典比C字典有什么优势

顺便问一下,哪种实现更常见?如果我不得不使用另一种语言标准库中的词典,它们最有可能具有什么时间复杂性


谢谢

MSDN文档谈到了平均案例时间复杂性(更具体地说,他们说复杂性“接近”给定的函数),这些与Python文档中介绍的相同。Python还提供了最坏情况的复杂性。对于某些操作,MSDN还提供最坏情况估计(示例:)

将平均情况与最坏情况进行比较是没有意义的

在实践中跳过理论:average case描述了您在执行操作时通常应该期望的情况。最坏情况告知您,有时在某些特定条件和/或某些特定数据下,操作可能执行得较慢


此外,最好专注于一个特定的操作。一般来说,讨论“字典的复杂性”也没有多大意义。

MSDN文档谈到了平均事例时间复杂性(更具体地说,他们说复杂性“接近”给定的函数),这些与Python文档中介绍的相同。Python还提供了最坏情况的复杂性。对于某些操作,MSDN还提供最坏情况估计(示例:)

将平均情况与最坏情况进行比较是没有意义的

在实践中跳过理论:average case描述了您在执行操作时通常应该期望的情况。最坏情况告知您,有时在某些特定条件和/或某些特定数据下,操作可能执行得较慢


此外,最好专注于一个特定的操作。一般来说,讨论“字典的复杂性”也没有多大意义。

我假设Python和C#中的字典使用的实现基本相同:哈希查找

哈希查找的时间顺序略大于O(1)。平均而言,一旦对密钥进行了哈希处理,就可以在一次访问中找到它,或者在稍长的访问中找到它(对于哈希冲突)

哈希查找的最差性能是O(n)。如果字典中的所有键都具有相同的哈希值,则搜索(通常)相当于线性暴力

是的,Python的最坏情况是O(n),而C#的平均时间复杂度是O(1+)。另一方面,Python的平均时间复杂度为O(1+),而C#的最坏情况为O(n)

换句话说,它们是相同的(一阶近似值)。你可能遇到的其他人也是如此


但要注意任何分类词典。它们非常不同。

我假设Python和C#中的词典使用的实现基本相同:哈希查找

哈希查找的时间顺序略大于O(1)。平均而言,一旦对密钥进行了哈希处理,就可以在一次访问中找到它,或者在稍长的访问中找到它(对于哈希冲突)

哈希查找的最差性能是O(n)。如果字典中的所有键都具有相同的哈希值,则搜索(通常)相当于线性暴力

是的,Python的最坏情况是O(n),而C#的平均时间复杂度是O(1+)。另一方面,Python的平均时间复杂度为O(1+),而C#的最坏情况为O(n)

换句话说,它们是相同的(一阶近似值)。你可能遇到的其他人也是如此


但要注意任何分类词典。它们非常不同。

这里有一个关于python内置字典的较老的SO-。这里有一个关于python内置字典的较老的SO-。