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

Python中的有序字典

牟黎昕
2023-03-14
问题内容

我在Python中有一个这样的字典:dict = {‘a’:1,’q’:1,’l’:2,’m’:1,’u’:1,’i’:1}

有什么方法可以保持此字典的顺序以这种方式表示。我已经阅读了几个论坛,其中大多数建议使用OrderedDict()。但正如这里解释:

Python
OrderedDict不保持元素顺序

以这种形式编写字典时,OrderedDict(dict)将不保留顺序。我无法以特定方式手动创建字典(例如,元组列表),因为它是由其他地方的代码随机生成的。非常感谢您的帮助!


问题答案:

在编写的那一刻dict = {'a':1, 'q':1, 'l':2, 'm':1, 'u':1, 'i':1},您已经失去了元素的顺序。保持方式:

一种。OrderedDict首先从您的数据创建。

b。将您转换dict为元组列表,并以所需的方式进行排序,然后OrderedDict从中创建。

总而言之,从您的问题还不清楚您要保留什么。如果它是“随机”生成的,那么谁在乎,如果背后有某种逻辑,则可以使用此逻辑来重新创建该顺序并OrderedDict使用该顺序进行创建。如果在幕后发生了一些事情,这些事情是根据某些输入数据来创建此字典的,那么,a,您看到它的顺序并不是它被创建的顺序。

附言别叫你的字典dict



 类似资料:
  • 本文向大家介绍Python的collections模块中的OrderedDict有序字典,包括了Python的collections模块中的OrderedDict有序字典的使用技巧和注意事项,需要的朋友参考一下 如同这个数据结构的名称所说的那样,它记录了每个键值对添加的顺序。 输出:    如果初始化的时候同时传入多个参数,它们的顺序是随机的,不会按照位置顺序存储。 除了和正常的 dict 相同的

  • 问题内容: 码: 打印。我不确定该方法如何确定l中关键字的顺序。但是,我希望能够以“适当”的顺序检索关键字。当然,正确的顺序将创建列表。 和这个: 问题答案: 你可以使用OrderedDict(需要Python 2.7)或更高版本。 另外,请注意,由于dict你使用进行创建的操作已经忘记了元素的顺序,因此该操作无效。相反,你想使用。 如文档中所述,对于低于python 2.7的版本,你可以使用此配

  • 问题内容: 我正在寻找一个有序的关联数组,即有序的字典的可靠实现。我想要按键而不是插入顺序排序。 更准确地说,我正在寻找一种int-to-float(或另一种用例是string-to-float)映射结构的节省空间的实现,该结构的结构是: 有序迭代为O(n) 随机访问为O(1) 我想到的最好的方法是将字典和键列表粘合在一起,使最后一个键按等分和插入顺序排列。 还有更好的主意吗? 问题答案: “随机

  • 本文向大家介绍Python程序将字典中的所有项目相乘,包括了Python程序将字典中的所有项目相乘的使用技巧和注意事项,需要的朋友参考一下 当需要将字典中的所有元素相乘时,将对字典中的键值进行迭代。该键与上一个键相乘,并确定输出。 字典是一组键值对。 示例 以下是相同的演示- 输出结果 解释 定义了一个字典。 为变量分配一定的值。 字典中的“键”被迭代。 在每个步骤中,此键都将与先前分配的变量相乘

  • 问题内容: 这是我的Django代码,无法正常运行: 有没有办法保持原始元素的顺序,所以帖子将按in排序? 谢谢! 编辑: Python 2.6,Django 1.3 问题答案: 使用SortedDict代替dict() SortedDict保持其属性中的顺序。因此,您可以根据需要操纵顺序而无需重建字典。例如,要反转SortedDict的顺序,只需使用

  • 问题内容: 我正在开发一个程序,其中将一些数据存储为整数并按位进行处理。例如,我可能会收到数字48,该数字将逐位处理。通常,整数的字节序取决于整数的机器表示形式,但是Python是否做任何事情来确保ints始终为little- endian?还是我需要像在C中一样检查字节序,然后针对这两种情况编写单独的代码? 我问是因为我的代码运行在Sun机器上,尽管现在运行的代码使用Intel处理器,但将来我可