问题标签 [dictionary]

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 投票
5 回答
2383 浏览

delphi - Delphi的字典(来自Python)组件?

Delphi 是否有类似 Python 字典的组件?

我现在使用 TStringList 来映射字符串/对象对,但我想要更通用的方法并且可能更强大(TStringList 在排序时具有二进制搜索)。

也欢迎 D2009 之前的解决方案。

0 投票
9 回答
64562 浏览

python - 如何在Django中获取具有特定权限组的所有用户的列表

我想获取具有特定权限组的所有 Django auth 用户的列表,如下所示:

我无法找到如何做到这一点。权限组如何保存在用户模型中?

0 投票
4 回答
131809 浏览

c# - 检索字典值最佳实践

我最近才注意到Dictionary.TryGetValue(TKey key, out TValue value)并很好奇哪种方法是从字典中检索值的更好方法。

我传统上做过:

除非我知道它必须在那里。

这样做更好吗:

哪个是更好的做法?一个比另一个快吗?我想 Try 版本会更慢,因为它在自身内部“吞下”一个 try/catch 并将其用作逻辑,不是吗?

0 投票
6 回答
8696 浏览

c# - C# 字典内存管理

我有一个Dictionary<string,int>可能包含超过 10+ 百万个唯一键的潜力。我试图减少这需要的内存量,同时仍然保持字典的功能。

我有将字符串的哈希存储为 long 的想法,这会将应用程序的内存使用量降低到可接受的量(~1.5 gig 到 ~.5 gig),但我对我的方法感觉不太好这。

基本上,这会切断 SHA1 哈希的末尾,并将其第一块放入一个 long 中,然后我将其用作密钥。虽然这可行,但至少对于我正在测试的数据而言,我不觉得这是一个非常可靠的解决方案,因为键冲突的可能性增加了。

有没有其他方法可以减少字典的内存占用,或者我上面的方法没有我想象的那么可怕?

[编辑]为了澄清,我需要保持使用字符串查找字典中包含的值的能力。将实际字符串存储在字典中会占用大量内存。我想做的是使用Dictionary<long,int>long 是字符串上散列函数的结果。

0 投票
7 回答
36116 浏览

python - 如何遍历和搜索 python 字典?

我有嵌套字典:

给定一个id - 之一。 导航到正确字典的最简单方法是什么?ids41304130-2-2

如果给定id的是,4130-2-1那么它应该到达字典key=key5

请不要使用 XML 方法。

编辑(1):嵌套在1级别之间4,但我在解析之前知道嵌套。

编辑(2):修复了代码。

编辑(3):再次修复了字符串值的代码ids。请原谅造成的混乱。我希望这是最终的:)

0 投票
4 回答
17529 浏览

c# - C#:Dictionary 的 [string] 索引器返回什么?

当字典中不存在键时,[string]索引器返回什么?Dictionary我是 C# 新手,似乎找不到像 Javadocs 一样好的参考。

我得到null,还是我得到一个例外?

0 投票
6 回答
2695 浏览

c# - 为什么字典不像 Hashtable 那样访问不存在的键?

如果我使用 a Hashtable,我可以编写如下代码:

无论是否key出现在Hashtable.

我不能用Dictionary<TKey. TValue>. 如果字典中不存在该键,则会抛出一个KeyNotFoundException. 所以我必须写这样的代码:

我想知道这是为什么。 Dictionary<TKey, TValue>只是一个包装Hashtable。为什么要加上这个限制?

编辑:

从另一个角度来看 PopCatalin 的答案(见下文),如果字典的值是值类型,我上面编写的代码将不起作用。如果我使用的是Dictionary<int, int>,那么我想使用的代码如下所示:

这不会编译,因为dict[key]它不是可为空的或引用类型。

0 投票
1 回答
3302 浏览

cocoa-touch - 如何将键值对附加到 iPhone 上的 UIView?

当我开始 iPhone 开发时,我在某处读到可以将键值对附加到 UIView。我知道所有 UIView 都可以用作字典来存储您可能想要附加到它们的任何数据,以防止不必要的子类化。但是,我到处搜索以找到参考,并试图徒劳地实现自己的行为。

我已经尝试过诸如:

但这似乎不起作用。我认为上面的代码所做的是尝试将值 @"hello" 分配给属性 @"world" - 这不是我想要的。

我想要实现的目标是可能的吗?

在这里的任何帮助将不胜感激。

谢谢!

缺口。

0 投票
9 回答
3390 浏览

algorithm - 编码词表的压缩算法

我正在寻找对算法和/或数据结构的具体建议或参考,以将单词列表编码成有效的拼写检查字典。该方案的目标将导致原始单词列表到编码形式的非常高的压缩比。我对编码字典的唯一输出要求是,可以以相对有效的方式针对原始单词列表测试任何建议的目标单词是否存在。例如,应用程序可能希望对照 100,000 个单词的字典检查 10,000 个单词。它不是编码字典形式能够[轻松]转换回原始单词列表形式的要求 - 二进制是/否结果是针对结果字典测试的每个单词所需要的全部。

我假设编码方案,以提高压缩率,将利用给定语言中的已知结构,例如单数和复数形式、所有格形式、缩写等。我对主要编码英语单词特别感兴趣,但要清楚,该方案必须能够编码任何和所有 ASCII 文本“单词”。

我想到的特定应用程序可以假设用于嵌入式设备,其中非易失性存储空间非常宝贵,而字典将是一个随机访问的只读内存区域。

编辑:总结字典的要求:

  • 零误报
  • 零假阴性
  • 非常高的压缩比
  • 不需要解压
0 投票
2 回答
7377 浏览

c# - 你能锁定一个通用字典吗?

或者你应该总是创建一些其他的锁对象?