我有一个键和值的字典,例如:
{
fred: 1,
dave: 2,
lily: 3
}
如何获取字典中的第二个元素 - 在这种情况下为{dave:2}
?
背景:我已经在SO上以这种或那种形式多次询问过这个问题, 所以我想我会写一个Q& A页面作为社区维基,人们可以 提到并且可能有希望成为这个问题的规范答案。
这个Q& A适用于词典,因为它们以多种不同的方式实现
语言。不同的语言使用不同的名称来指代是什么
基本上相同的数据结构 - 例如它们被称为哈希
Perl,Python中的词典。在Objective-C中,他们是实例
NSDictionary
或NSMutableDictionary
个类。
答案 0 :(得分:13)
简而言之,你不能 - 因为字典无序 键/值对的集合。填充字典的顺序 没有保留在内存中。这是Python中的一个简单示例:
>>> dict = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict # show the value of dict in memory
{'a': 1, 'c': 3, 'b': 2}
正如您所看到的,虽然字典是使用键初始化的 命令a,b,c,打印字典的值显示它们 订购了a,c,b。即使这种排序也不会保留在内存中; 当您向字典中添加更多键/值对时,将其中的顺序添加到字典中 上面的表达将继续改变。
字典针对快速存储和检索值进行了优化 基于唯一键。实施方式因语言而异 接下来,但通常它的工作原理如下:
答案 1 :(得分:1)
我是新手,所以无法添加评论.....但这实际上是对Simon的上述答案的评论。
有用的问题&好的答案,西蒙。你可以在答案中添加另一个部分,说,因此,这个问题唯一有意义的方法是,如果我们采取类似以下示例的方法