问题标签 [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 投票
8 回答
1735 浏览

python - 将两个列表映射到一个字典列表

想象一下,我有这些 python 列表:

是否有直接或至少简单的方法来生成以下字典列表?

0 投票
4 回答
7007 浏览

c# - C# 字典 ValueOrNull / ValueorDefault

目前我正在使用

我想要一些方法让字典 [key] 为不存在的键返回 null,所以我可以写类似的东西

这也最终成为 linq 查询等的一部分,所以我更喜欢单线解决方案。

0 投票
14 回答
19529 浏览

c++ - 如何使用键类型 std::string 提高地图查找的性能?

我正在使用std::map(VC++ 实现),通过地图的 find 方法进行查找有点慢。

密钥类型是std::string

我可以std::map通过地图的自定义键比较覆盖来提高此查找的性能吗?例如,也许< compare在比较数据之前std::string没有考虑简单的比较?string::size()

还有其他加快比较速度的想法吗?

在我的情况下,地图将始终包含 < 15 个元素,但它正在不停地被查询并且性能至关重要。也许有一个更好的数据结构我可以使用它会更快?

更新:地图包含文件路径。

更新2:地图的元素经常变化。

0 投票
9 回答
567 浏览

mysql - 使用文件系统与 RDMBS (MySQL) 进行并发处理

我正在构建一个英语网络词典,用户可以在其中输入单词并获取定义。我考虑了一段时间,因为数据是 100% 静态的,而且我一次只能检索一个单词,所以最好使用文件系统 (ext3) 作为数据库系统,而不是选择使用 MySQL 来存储定义。考虑到您必须连接到 MySQL 并且这本身是一个非常缓慢的操作,我认为开销会更少。

我担心的是,如果我的系统受到 500 字检索/秒的轰炸,我还是将文件系统用作数据库会更好吗?或者增加的文件系统读取会阻碍性能,而不是 MySQL 可能在幕后做的事情?

目前,层次结构由单词的第一个字母、第二个字母和第三个字母分割。因此,如果您要搜索“水”的定义,脚本 (PHP) 将尝试从“../dict/w/a/t/water.word”中读取(在清理有问题的单词和小写)

我是朝着正确的方向前进还是有更快的解决方案(不计算使用 memcached 之类的东西在内存中存储定义)?存储在任何目录中的文件数量是否会影响性能?我应该在目录中存储的文件数量的粗略基准是什么?

0 投票
5 回答
3469 浏览

.net - 当我遍历字典(.NET 通用数据结构)时,它的顺序是否与我添加它们的顺序相同?

我有一个字典,我通常用一个键访问,所以我需要快速随机访问读取。但是,对于一个功能,我需要处理字典中顺序很重要的每个项目。它似乎在测试中工作正常。依赖字典中项目的顺序可以吗?

0 投票
5 回答
1095 浏览

dictionary - 我在哪里可以获得用于检查拼写的字典文件?

我以为以前有人问过这个问题,但是在 Google 上搜索了 15 分钟,站点搜索并没有出现任何结果……所以:

我在哪里可以获得免费的(如啤酒和/或语音)字典文件?我主要对英语感兴趣,但如果您知道任何字典文件,请指出。

注意:这个问题没有正确/错误的答案,所以我把它做成了社区维基。但是,我觉得它可能不仅对我自己有价值,而且对任何希望实现或使用带有各种字典文件的拼写检查器的人都很有价值。

0 投票
19 回答
8070 浏览

python - 使用正则表达式进行哈希表/字典/地图查找

我试图弄清楚是否有一种相当有效的方法来在字典(或哈希、映射或任何你喜欢的语言调用它)中执行查找,其中键是正则表达式,字符串是针对组键。例如(在 Python 语法中):

(很明显,上面的例子不能像用 Python 写的那样工作,但这是我想做的事情。)

我可以想到一种天真的方法来实现这一点,其中我遍历字典中的所有键并尝试将传入的字符串与它们匹配,但随后我失去了哈希映射的 O(1) 查找时间和取而代之的是 O(n),其中 n 是我的字典中的键数。这可能是一件大事,因为我预计这本字典会变得非常大,我需要一遍又一遍地搜索它(实际上我需要为我在文本文件中读取的每一行迭代它,并且文件的大小可以是数百兆字节)。

有没有办法做到这一点,而不诉诸 O(n) 效率?

或者,如果您知道一种在数据库中完成此类查找的方法,那也很棒。

(任何编程语言都可以——我使用的是 Python,但我对这里的数据结构和算法更感兴趣。)

有人指出,不止一场比赛是可能的,这是绝对正确的。理想情况下,在这种情况下,我想返回一个包含所有匹配项的列表或元组。不过,我会满足于第一场比赛。

在那种情况下,我看不到 O(1) 是可能的;不过,我会满足于小于 O(n) 的任何东西。此外,底层数据结构可以是任何东西,但我想要的基本行为是我上面写的:查找一个字符串,并返回与正则表达式键匹配的值。

0 投票
5 回答
23197 浏览

python - 将元组列表转换为字典

我有一个这样的元组列表:

我想通过第一项来遍历这个键控,所以,例如,我可以打印这样的东西:

如果不保留一个项目来跟踪第一个项目是否与我在元组周围循环的相同,我将如何去做呢?这感觉相当混乱(另外我必须从列表开始排序)......

0 投票
3 回答
12163 浏览

c# - C#:如何使用字典实施 ICollection> 没有 Add(KeyValuePair)?

看起来System.Collections.Generic.Dictionary<TKey, TValue>,它显然实现ICollection<KeyValuePair<TKey, TValue>>了,但没有所需的“ void Add(KeyValuePair<TKey, TValue> item)”功能。

这也可以在尝试Dictionary像这样初始化时看到:

失败了

方法'Add'没有重载需要'1'参数

为什么呢?

0 投票
11 回答
135820 浏览

c# - 在 C# 中创建常量字典

创建s 到s 的常量(在运行时从不更改)映射的最有效方法是什么?stringint

我试过使用const Dictionary,但没有成功。

我可以用适当的语义实现一个不可变的包装器,但这似乎仍然不完全正确。


对于那些问过的人,我正在生成的类中实现IDataErrorInfo并且正在寻找一种方法来将 columnName 查找到我的描述符数组中。

我不知道(测试时打错字!d'oh!)那个开关接受字符串,所以这就是我要使用的。谢谢!