当前位置: 首页 > 面试题库 >

python的“设置”稳定吗?

宋建本
2023-03-14
问题内容

当我在python集上进行多次迭代(在调用之间不进行更改)时,是否可以假定它总是以相同顺序返回元素?如果不是,更改订单的理由是什么?它是确定性的还是随机的?还是实现定义?

当我重复调用相同的python程序(不是随机的,不是依赖于输入的)时,我会得到相同的集合排序吗?

潜在的问题是python集迭代顺序是否仅取决于用于实现集的算法,还是取决于执行上下文?


问题答案:

没有正式的关于集合稳定性的保证。但是,在CPython实现中,只要不更改集合,项目将以相同顺序生成。集被实现为开放式地址哈希表(使用质数探针),因此插入或删除项目可以完全改变顺序(特别是在触发调整大小时,可以重新排列项目在内存中的布局。)有两个相同的集合,但是它们以不同的顺序生成项目,例如:

>>> s1 = {-1, -2}
>>> s2 = {-2, -1}
>>> s1 == s2
True
>>> list(s1), list(s2)
([-1, -2], [-2, -1])

除非您非常确定自己拥有相同的集合,并且在两次迭代之间没有碰触到它,否则最好不要依赖于它保持不变。例如,对您之间调用的函数进行看似无关的更改可能会导致很难发现错误。



 类似资料:
  • 问题内容: 我想知道Django-Haystack + elasticsearch + pyelasticsearch / elasticsearch- py的最佳组合是什么。我已经在Ubuntu 12.04机器上使用Haystack 2.1.1-dev + elasticsearch 1.1.1 + elasticsearch-py 1.0部署了安装程序。我尝试将Haystack 2.1.0(最

  • 《稳定宝石放置》一款以宝石为主题的放置游戏,通过控制不同的升级,来获得各种宝石,购买升级,最终通关游戏。

  • 问题内容: 我对配置Jenkins或Python还是很陌生,但我必须在Jenkins中设置单一测试。我的程序是在Python中运行的,但仅在Python 2.6上可以运行,而我应该使用的Jenkins版本是2.7,因此我试图设置Jenkins来设置一些环境变量,以便它准备为该特定测试启动准确的Python(它是一个更大的项目的一部分,该项目将成功运行其他运行良好的测试)。 我的想法是在命令中设置执

  • 问题内容: 下面有没有一种数值稳定的方法来计算softmax函数?我得到的价值在神经网络代码中变成Nans。 问题答案: softmax exp( x )/ sum(exp( x ))实际上在数字上表现良好。它只有正数项,因此我们不必担心重要性下降,并且分母至少与分子一样大,因此可以保证结果介于0到1之间。 唯一可能发生的事故是指数溢出或溢出。 x 的单个元素的上溢或所有元素的下溢将使输出或多或少

  • 问题内容: 在将RXTX用于许多不同的项目之后,我遇到了许多烦人的差异和问题,这些差异和问题只能归结为库中的错误- 死锁,竞争危险以及RXTX库中深处的监视线程处于打开状态,无法防止从关闭程序开始(即使我正在使用的所有端口都已关闭!)运行最新的“不稳定”版本也有所帮助,但距离我所说的可靠位置还差得很远,并且该项目上的活动似乎很少现在。 但是,寻找RXTX的免费跨平台替代品似乎没有太多其他选择。 是

  • 问题内容: 我已经设置了swift项目来使用sqlite。有时,插入时实际上并没有插入正确(或全部)的值。我知道,因为我重新启动了该应用程序,并且当我再次输入时,输入是随机错误(未插入内容)或为零。但有时是正确的。 这是我设置的位置,是的,插入之前数据正确。 您可以在中间看到注释掉的println,如果没有注释掉,则itemName有时会成为该字符串的一部分。 问题答案: 我有同样的问题。我找到了