【发布时间】:2013-03-10 13:24:19
【问题描述】:
我需要构建一个像这样的数据结构:
{
key: {k: v for k in range(fixed_small_number)}
for key in range(fixed_large_number)
}
问题是我正在以一种“折衷”的方式构建它,每次多获取一个项目以放入随机 k 作为随机密钥,即我需要随机访问,并且我需要内部 dict是可变的。
所以我的问题分为两个:
外部字典的推荐类型。
内部字典的推荐类型。
对我来说“最好”的解决方案是一组可变的命名元组,只是这个不存在。
我可以使用一个命名元组列表,然后用新数据重新创建每个,但这听起来非常浪费,因为列表不具备随机访问效率,而且所有数据都需要重写。
是否有一些我不知道的神奇新结构?
编辑: 使用示例:
for key, k, v in [('a', 1, 2), ('b', 1, 3), ('a', 2, 1), ('a', 3, 1), ('b', 3, 1) ...]:
my_structre[key][k] = v
编辑2:
事实证明,列表实际上 DO support random access
【问题讨论】:
-
如果我正确理解了这个问题,我不确定这是否可行。
dicts 等可变对象不能是字典键。 -
无论如何,目前尚不清楚您要完成什么。您能否举例说明如何“折衷地”构建此数据结构? IE。给定单个更新的之前和之后状态?
-
我不确定我是否理解.. 我在哪里建议 dicts 将用作键?
-
v来自哪里? -
@phistakis 嵌套的字典理解? TBH 从一开始它看起来不像是有效的 Python,您应该真正扩展您的代码示例以显示您正在尝试做什么。也许写出实际的虚拟数据?
标签: python arrays list namedtuple