问题标签 [ordereddictionary]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63958 浏览

c# - OrderedDictionary 和 Dictionary

我正在寻找一种方法让我以与添加它们相同的顺序Dictionary枚举它。KeyValuePair现在,Dictionary 的文档明确指出:

出于枚举的目的,字典中的每个项目都被视为KeyValuePair<TKey, TValue>表示值及其键的结构。返回项目的顺序未定义。

我发现我需要的是一个OrderedDictionary.,但作为怀疑论者,我决定自己尝试一下:

输出:

如您所见,两者都是有序的,这就提出了两个问题:

在哪种情况下会Dictionary给出与添加值的顺序不同的顺序?我的第一个foreach循环是否保证我以KeyValuePair相同的顺序检索我的,还是我必须使用索引?

0 投票
2 回答
6612 浏览

python - Python:按字母顺序迭代 OrderedDict

在脚本中,我有一个 OrderedDictgroups,它按字母顺序获取键/值对。

在脚本的另一部分,我正在检查与以下相同的文件key

事情发生得很好,其中一部分是为每个文件打印一个状态行,但是我怎样才能让 Python 按字母顺序遍历groups,或者至少按数字顺序遍历它们(因为它们是按字母顺序输入的)?

0 投票
2 回答
156 浏览

c# - 如何在方法中返回 OrderedDictionary?

我想在我的方法中返回一个 OrderedDictionary,但我的代码有错误...

我不知道为什么我不能这样做:

错误信息

错误:错误 1 ​​'application.Xml.getAllPortsInformations ()':所有代码路径不一定都返回值

0 投票
2 回答
631 浏览

python - 创建具有自然下标的 3 维 OrderedDict

我想要一个具有以下属性的字典结构:

  1. 双重嵌套(所以,在这么多单词中是 3 维的)
  2. 记住每个级别添加到其中的事物的顺序

所以,如果我像这样向它添加项目:

以下理解的结果:

将会:

我尝试使用 adefaultdict来为新键强制执行此结构,因此我不必长时间键入它,如下所示:

但是defaultdict不记得前两个级别的顺序。我不确定如何合并行为,因此显然前两个级别正在产生defaultdict行为,因为我已声明d如此。我怎样才能实现我想要的结构?

0 投票
6 回答
3153 浏览

python - OrderedDict 没有保持秩序

这个循环的想法是遍历一个列表。如果对象的某个属性不是 OrderedDict 的键,它将添加它。它是对象列表的字典

虽然它似乎确实使 OrderedDict 大部分正确,但它在打印时最终出现故障。与其拥有类似的东西,不如(01/13) (02/13) (03/13)说它更像(02/13) (03/13) (01/13).
为什么会发生这种情况,如何解决?

0 投票
2 回答
2512 浏览

python - 在有序字典中搜索任何字符串值

我有一个嵌套的有序字典,即一个有序字典,其中一些值是包含进一步有序字典的有序字典。当我使用集合模块并使用以下调用时

yOrDict然后我从 yml 文件中得到一个有序的字典ApplyForm.yml

假设 yOrDict 只有一个键 ( ApplyForm) 和一个值,而该值又是一个有序字典。

进一步调用给出另一个有序字典:

假设yOrDictLevel1有六个键,其值包含有序字典。

说在某个地方,一个有序字典有一个名为 的值Block

python中是否有一个调用/函数/方法,我可以通过它检查Block是否出现在顶级有序字典中- yOrDict?即我想检查 yOr​​Dict 中是否存在字符串“Block”?

0 投票
2 回答
3999 浏览

python - OrderedDictionary.popitem() 无法遍历所有值?

我尝试以先进先出的顺序遍历有序字典。虽然对于标准字典一切正常,但对于 orderedDict 的第一个解决方案反应很奇怪。看起来,虽然popitem()返回一个键/值对(但以某种方式顺序,因为我不能用kv_pair两个变量替换),然后迭代就完成了。我看不到继续下一个键/值对的简单方法。

虽然我找到了两个可行的替代方案(如下所示),但它们都缺乏普通字典方法的优雅。

根据我在在线帮助中找到的内容,无法做出决定,但我认为我的期望是错误的。有更优雅的方法吗?

0 投票
3 回答
1137 浏览

python - 在构建字典时有条件地删除 OrderedDict 值

我已经问过一个类似的问题(从字典中删除重复值而不删除键)但我认为我正在深入研究这个问题并且可以更好地解释它,因为不幸的是,没有一个答案符合我的需要,但他们确实回答了我的问题。

我正在从两个 .csv 文件构建一个 OrderedDict。第一个包含位置代码,而第二个是按时间排列的硬件重定位列表。所有位置代码都是唯一的,因此这是我的字典的关键,我有一个循环,使用该 .csv 文件构建具有空值的字典。然后我有另一个循环将硬件数据添加到正确的位置代码。一些硬件数据采用列表形式,因此不可散列。

我遇到的问题是,随着硬件移动到新位置,我需要将其从以前的位置移除。所以它只在代码末尾的一个地方

我的位置代码是;

我的硬件数据是按时间排序的,

如果我在没有任何条件语句的情况下在整个时间范围内运行代码,我的最终字典看起来像

但我也需要它的样子;

因为项目(值)没有以与添加位置(键)相同的顺序添加到字典中,所以在构建字典(添加值)时这样做很重要,因为我无法返回并且只是完成后删除重复项。

我尝试了很多事情并得到了不同的结果,但我最新的是

这会将所有位置返回为空。我已经坚持了几天,所以任何帮助将不胜感激。

0 投票
2 回答
517 浏览

python - Python 有序字典:为什么使用 for 循环更改字典值需要 [] 表示法?

我需要更改有序字典的值。我使用了一个for循环,但值没有改变。我发现这是因为我在循环中分配了变量名,而不是直接使用括号[]表示法。为什么我不能通过循环变量名引用循环中的值?

试过:

结果:OrderedDict([('Accel X Bias', None), ('Mag X Bias', None)])

预期的:OrderedDict([('Accel X Bias', 1), ('Mag X Bias', 2)])

完整代码:

这可能是一些基本的编程原则,所以我对“为什么”感兴趣,所以我不会犯更多这样的错误。谢谢!

0 投票
4 回答
12475 浏览

python - 有什么理由不使用 OrderedDict?

我指的是模块中的OrderedDictcollections,它是一个有序字典。

如果它具有可订购的附加功能,我意识到这通常可能不是必需的,但即便如此,是否有任何缺点?是不是比较慢?它缺少任何功能吗?我没有看到任何缺失的方法。

简而言之,为什么我不应该总是使用它而不是普通字典?