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

如何基于数组重新排序python命令字典?

胡越
2023-03-14
问题内容

假设我有一个包含以下项目的命令字典:

mydict = {'Rust': {'definition':'rusts definition'}, 'Iron': {'definition:'iron definition'}, 'Pyrite': {'definition':'pyrite definition'}}

如果我有一个数组:

myorder = ['Pyrite', 'Rust', 'Iron']

如何重新排序Ordered Dict,以使mydict中的项目基于myorder排序?


问题答案:

尝试这个:

mydict = {'Rust': {'definition':'rusts definition'},
          'Iron': {'definition':'iron definition'},
          'Pyrite': {'definition':'pyrite definition'}}

myorder = ['Pyrite', 'Rust', 'Iron']

from collections import OrderedDict

ordered = OrderedDict()
for k in myorder:
    ordered[k] = mydict[k]

甚至更短:

ordered = OrderedDict((k, mydict[k]) for k in myorder)

使用上面的代码片段,ordered将包含与相同的键/值mydict,但它们将以所指定的相同顺序插入myorder。这是优点OrderedDict:对其进行迭代时,它将保留插入顺序。

无法就地对现有字典进行排序(嗯,您 可以
提取所有键值对,消除它们,然后以正确的顺序再次添加它们,但这不是这个主意,对吗?),有必要创建一个新的…或者只是以指定的顺序遍历现有字典:

for k in myorder:
    x = mydict[k] # do something with x


 类似资料:
  • 问题内容: 我想根据子键key3的值按降序对字典d进行排序。见下文: 所以最终的字典看起来像这样。 我的方法是从d形成另一个字典e,其字典键将是key3的值,然后使用reversed(sorted(e)),但是由于key3的值可以相同,因此字典e丢失了一些键及其值。说得通? 我怎样才能做到这一点?这不是经过测试的代码。我只是想了解逻辑。 问题答案: 字典没有任何固有的顺序。或者,相反,它们的固有顺

  • 有没有更时髦的方法来解决这个问题?

  • 本文向大家介绍如何基于Python实现word文档重新排版,包括了如何基于Python实现word文档重新排版的使用技巧和注意事项,需要的朋友参考一下 介绍 舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作。 分析需求 对文档中的内容进行分析,只留下题目,选项,并且题号要从1开始。 编写代码 pi

  • 看看下面的伪C++代码: 有两个函数带有参数。参数计数大于三,但为了简单起见,例如设为三。 -它是模板函数,具有与相同的参数计数,并且参数具有与相同的类型。但是(!)参数上的顺序可以(或不能)不同。例如: 那么如何在中重新排序参数,以便使用正确的参数序列调用呢?

  • 我有以下Java POJO 如何实现在游戏对象列表中确定重复字段的功能? 例如,当两个游戏有相同的开始日期? 我以前使用过,但仅在根据最早日期等对对象进行排序时使用过,但它能否用于对重复项进行排序?

  • 问题内容: 我有一个像这样的数组: 我想基于第二元素按降序对其进行排序。理想的输出为: 问题答案: ,接受可选参数。函数用于生成比较密钥。

  • 我正在解决一个问题“编写一个名为splay的函数,根据第一个值重新组织列表。第一个值称为splaymaster。该函数将重新排列列表,使splaymmaster之前的所有值都小于或等于splaymast,之后的所有值均大于splaymMaster。该函数还返回列表被重新排列。例如,如果列表为[8,15,4,48,26,45,18,29,2,1],函数将重新排列为[2,1,4,8,26,4518,2

  • 例如,我有以下数据集: 我需要根据数组中的条件对数组进行排序。我最终得出了这样的解决方案: 但我无法理解如何使用数组而不是硬编码的和属性。数组可以有许多属性。