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

在Python中,什么决定了遍历kwargs的顺序?

步胜
2023-03-14
问题内容

在python中,我编写了此函数来告诉自己如何**kwargs在python中工作:

def fxn(a1, **kwargs):
    print a1
    for k in kwargs:
        print k, " : ", kwargs[k]

然后我用

fxn(3, a2=2, a3=3, a4=4)

这是我的Python解释器打印的输出:

3
a3  :  3
a2  :  2
a4  :  4

为什么即使我先将a2输入到函数中,for循环也还是在a2之前打印a3值?


问题答案:

kwargs是一本字典。字典是无序的-
简而言之,未指定顺序和实现细节。深入了解之下,该顺序将根据项目的哈希值,插入顺序等而发生巨大变化,因此最好不要依赖与之相关的任何内容。



 类似资料:
  • 问题内容: SQL标准是否为多表查询指定锁定顺序? 例如,给定: SQL标准是保证锁定顺序还是由(特定于实现的)执行计划确定? 有没有办法保证锁定顺序? 如果没有办法保证锁定顺序,我们应该如何防止死锁? 更新 :在未解释您的推理之前,请不要投票结束该问题。就我而言,这是一个编程问题,这使Stackoverflow变得非常重要。如果您认为这个问题需要进一步完善,请解释一下,我们非常乐意为您解答。 问

  • 本文向大家介绍vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?相关面试题,主要包含被问及vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?时的应答技巧和注意事项,需要的朋友参考一下 1、会先判断是否有iterator接口,如果有循环执行next()方法 2、没有iterator的情况下,会调用Object.keys()方法,在不同浏览器中,JS引擎不能保证输出顺序

  • 问题内容: 在围棋编程语言规范说: 3.未指定地图的迭代顺序。[…] 这是可以预期的,因为地图类型可以实现为哈希表,搜索树或其他某种数据结构。但是,如何在Go中实现呢? 换句话说,是什么决定了键的迭代顺序 我开始怀疑这个之后,我看到了地图键显然 也 有一定的迭代顺序。像这样的程序 在我的机器上打印以下内容: 无论 插入顺序如何。 带有映射的等效程序也以随机顺序打印键,但是这里的键顺序 取决于 插入

  • 我想在级别顺序遍历中打印出BST。但是我以这种奇怪的方式得到了输出。此外,我使用Java可视化工具来检查我的算法,没有线索,因为可视化工具没有说明多个实例。我在想,要么我的变量没有正确地添加到我的实例中,要么没有添加到

  • 为了遍历通用树,我为下面链接中提到的代码编写了以下显示函数。问题是每个级别打印两次。有人能告诉我为什么吗。如果有人需要整个实现,可以在下面的链接中找到没有此函数的原始代码。其他人只需查看下面的displayBFS函数,并告诉我为什么值会重复 java中泛型树(n元树)的级顺序遍历 谢谢 目前的树状结构可供参考: 输出:100 90 50 70 90 50 70 20 30 200 300 20 3

  • 问题内容: 有一个现有的函数以下面的结尾,其中是一个字典: 返回给定字典的未排序迭代器。我想返回一个遍历按 key 排序的项目的迭代器。我怎么做? 问题答案: 尚未对此进行广泛的测试,但是可以在Python 2.5.2中使用。 如果您习惯于使用迭代器代替迭代器,那么上面的解决方案仍然可以使用 在Python 3.x中,使用代替返回迭代器。