>>> d = {'A':1, 'b':2, 'c':3, 'D':4}
>>> d
{'A': 1, 'D': 4, 'b': 2, 'c': 3}
>>> d.items()
[('A', 1), ('c', 3), ('b', 2), ('D', 4)]
当我调用d.items()时,顺序是否会随机化两次?还是只是以不同的方式随机化?有没有其他方法可以使d.items()返回与d相同的顺序?
编辑:似乎是IPython事物,它会自动对字典进行排序。通常,dict和dict.items()的顺序应相同。
您似乎已经在IPython上对此进行了测试。IPython对各种类型使用其自己的专门的漂亮打印工具,并且dict漂亮打印器在打印之前对键进行排序(如果可能)。该d.items()
调用不会对键进行排序,因此输出是不同的。
在普通的Python会话中,字典repr
中各项的顺序将与方法中各项的顺序匹配items
。只要不修改字典,字典迭代顺序就应该是稳定的。(此保证未明确扩展到dict的保证repr
,但是如果隐式迭代repr
与其他形式的dict迭代保持一致,这将令人惊讶。)
问题内容: 和之间有适用的区别吗? 从Python文档中: :返回字典的(键,值)对列表的副本。 :在字典的(键,值)对上返回迭代器。 如果我运行下面的代码,每个似乎都返回对同一对象的引用。我缺少任何细微的差异吗? 输出: 问题答案: 这是演变的一部分。 最初,构建了一个真正的元组列表,并将其返回。这可能会占用大量额外的内存。 然后,一般将生成器引入该语言,然后将该方法重新实现为名为的迭代器-生成
问题内容: 为什么更改总和顺序会返回不同的结果? = = 双方的Java和JavaScript的返回相同的结果。 我知道,由于以二进制表示浮点数的方式,某些有理数( 例如1/3-0.333333 … )无法精确表示。 为什么简单地更改元素的顺序会影响结果? 问题答案: 也许这个问题很愚蠢,但是为什么仅仅改变元素的顺序会影响结果呢? 它将根据值的大小更改四舍五入的点。作为示例 _样的_事情,我们所看
为什么改变求和顺序会返回不同的结果? = Java和JavaScript都返回相同的结果。 我知道,由于浮点数在二进制中的表示方式,一些有理数(如1/3-0.333333...)不能精确表示。 为什么简单地改变元素的顺序会影响结果?
这个功能有什么用处?如果我想在字典中查找与键相关联的值,我可以执行,它返回相同的内容:
问题内容: 关于密码学和诸如此类的事情,我是一个新手。我不知道(也不想知道)SHA256和RSA的详细信息。我“知道”他们在做什么,而不是他们如何做,现在就足够了。 我想知道“ SHA256withRSA”算法(如果可以这样称呼)的实际作用和顺序。例如,它是否先使用SHA256对数据进行哈希处理,然后使用RSA对其进行加密,或者反之亦然? 我问的原因是因为我想做java的等效项: 在iOS上的Ob
描述 (Description) 方法items()返回dict(键,值)元组对的列表 语法 (Syntax) 以下是items()方法的语法 - dict.items() 参数 (Parameters) NA 返回值 (Return Value) 此方法返回元组对列表。 例子 (Example) 以下示例显示了items()方法的用法。 #!/usr/bin/python dict = {'N
问题内容: 我听说(在互联网上的某处阅读)比顺序IO快。它是否正确?如果是,那为什么会更快? 没有按顺序阅读。 已经从磁盘读取本身一样呢 映射区域不是顺序的-因此没有DMA(?)。 那么实际上应该比从文件慢吗?我上面的哪些假设是错误的? 问题答案: 我听说(在互联网上的某处阅读)mmap()比顺序IO更快。它是否正确?如果是,那为什么会更快? 可能是-有优点和缺点,如下所列。 当您真的有理由要关心