问题标签 [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.
c# - OrderedDictionary 和 Dictionary
我正在寻找一种方法让我以与添加它们相同的顺序Dictionary
枚举它。KeyValuePair
现在,Dictionary 的文档明确指出:
出于枚举的目的,字典中的每个项目都被视为
KeyValuePair<TKey, TValue>
表示值及其键的结构。返回项目的顺序未定义。
我发现我需要的是一个OrderedDictionary
.,但作为怀疑论者,我决定自己尝试一下:
输出:
如您所见,两者都是有序的,这就提出了两个问题:
在哪种情况下会Dictionary
给出与添加值的顺序不同的顺序?我的第一个foreach
循环是否保证我以KeyValuePair
相同的顺序检索我的,还是我必须使用索引?
python - Python:按字母顺序迭代 OrderedDict
在脚本中,我有一个 OrderedDictgroups
,它按字母顺序获取键/值对。
在脚本的另一部分,我正在检查与以下相同的文件key
:
事情发生得很好,其中一部分是为每个文件打印一个状态行,但是我怎样才能让 Python 按字母顺序遍历groups
,或者至少按数字顺序遍历它们(因为它们是按字母顺序输入的)?
c# - 如何在方法中返回 OrderedDictionary?
我想在我的方法中返回一个 OrderedDictionary,但我的代码有错误...
我不知道为什么我不能这样做:
错误信息
错误:错误 1 'application.Xml.getAllPortsInformations ()':所有代码路径不一定都返回值
python - 创建具有自然下标的 3 维 OrderedDict
我想要一个具有以下属性的字典结构:
- 双重嵌套(所以,在这么多单词中是 3 维的)
- 记住每个级别添加到其中的事物的顺序
所以,如果我像这样向它添加项目:
以下理解的结果:
将会:
我尝试使用 adefaultdict
来为新键强制执行此结构,因此我不必长时间键入它,如下所示:
但是defaultdict
不记得前两个级别的顺序。我不确定如何合并行为,因此显然前两个级别正在产生defaultdict
行为,因为我已声明d
如此。我怎样才能实现我想要的结构?
python - OrderedDict 没有保持秩序
这个循环的想法是遍历一个列表。如果对象的某个属性不是 OrderedDict 的键,它将添加它。它是对象列表的字典
虽然它似乎确实使 OrderedDict 大部分正确,但它在打印时最终出现故障。与其拥有类似的东西,不如(01/13) (02/13) (03/13)
说它更像(02/13) (03/13) (01/13)
.
为什么会发生这种情况,如何解决?
python - 在有序字典中搜索任何字符串值
我有一个嵌套的有序字典,即一个有序字典,其中一些值是包含进一步有序字典的有序字典。当我使用集合模块并使用以下调用时
yOrDict
然后我从 yml 文件中得到一个有序的字典ApplyForm.yml
。
假设 yOrDict 只有一个键 ( ApplyForm
) 和一个值,而该值又是一个有序字典。
进一步调用给出另一个有序字典:
假设yOrDictLevel1
有六个键,其值包含有序字典。
说在某个地方,一个有序字典有一个名为 的值Block
。
python中是否有一个调用/函数/方法,我可以通过它检查Block是否出现在顶级有序字典中- yOrDict
?即我想检查 yOrDict 中是否存在字符串“Block”?
python - OrderedDictionary.popitem() 无法遍历所有值?
我尝试以先进先出的顺序遍历有序字典。虽然对于标准字典一切正常,但对于 orderedDict 的第一个解决方案反应很奇怪。看起来,虽然popitem()
返回一个键/值对(但以某种方式顺序,因为我不能用kv_pair
两个变量替换),然后迭代就完成了。我看不到继续下一个键/值对的简单方法。
虽然我找到了两个可行的替代方案(如下所示),但它们都缺乏普通字典方法的优雅。
根据我在在线帮助中找到的内容,无法做出决定,但我认为我的期望是错误的。有更优雅的方法吗?
python - 在构建字典时有条件地删除 OrderedDict 值
我已经问过一个类似的问题(从字典中删除重复值而不删除键)但我认为我正在深入研究这个问题并且可以更好地解释它,因为不幸的是,没有一个答案符合我的需要,但他们确实回答了我的问题。
我正在从两个 .csv 文件构建一个 OrderedDict。第一个包含位置代码,而第二个是按时间排列的硬件重定位列表。所有位置代码都是唯一的,因此这是我的字典的关键,我有一个循环,使用该 .csv 文件构建具有空值的字典。然后我有另一个循环将硬件数据添加到正确的位置代码。一些硬件数据采用列表形式,因此不可散列。
我遇到的问题是,随着硬件移动到新位置,我需要将其从以前的位置移除。所以它只在代码末尾的一个地方
我的位置代码是;
我的硬件数据是按时间排序的,
如果我在没有任何条件语句的情况下在整个时间范围内运行代码,我的最终字典看起来像
但我也需要它的样子;
因为项目(值)没有以与添加位置(键)相同的顺序添加到字典中,所以在构建字典(添加值)时这样做很重要,因为我无法返回并且只是完成后删除重复项。
我尝试了很多事情并得到了不同的结果,但我最新的是
这会将所有位置返回为空。我已经坚持了几天,所以任何帮助将不胜感激。
python - Python 有序字典:为什么使用 for 循环更改字典值需要 [] 表示法?
我需要更改有序字典的值。我使用了一个for
循环,但值没有改变。我发现这是因为我在循环中分配了变量名,而不是直接使用括号[]
表示法。为什么我不能通过循环变量名引用循环中的值?
试过:
结果:OrderedDict([('Accel X Bias', None), ('Mag X Bias', None)])
预期的:OrderedDict([('Accel X Bias', 1), ('Mag X Bias', 2)])
完整代码:
这可能是一些基本的编程原则,所以我对“为什么”感兴趣,所以我不会犯更多这样的错误。谢谢!
python - 有什么理由不使用 OrderedDict?
我指的是模块中的OrderedDictcollections
,它是一个有序字典。
如果它具有可订购的附加功能,我意识到这通常可能不是必需的,但即便如此,是否有任何缺点?是不是比较慢?它缺少任何功能吗?我没有看到任何缺失的方法。
简而言之,为什么我不应该总是使用它而不是普通字典?