-3

我可以将任何列表表示为字典,其键是有效的列表索引,其值是列表的项目。例如,[5, 6, 'a']将表示为{0:5, 1:6, 2:'a'}

在渐近时间和内存复杂度方面,dict表示与 相同listlist以常数因子使用更少的内存。

如果内存不是问题,我是否总是可以使用dict而不是列表和其他序列(以获得使用任意键的灵活性,并通过减少使用的不同容器的数量来稍微标准化代码)?

4

1 回答 1

5

考虑到进入其中的数据,更喜欢最有意义的数据结构。

dicts 很棒,但是,例如,它们不保持顺序:因此,如果您想按顺序迭代值,则必须根据键进行排序,这会产生复杂性并使其难以阅读。

一般来说,在dict任何地方使用 s 代替lists 都不太可能显着提高应用程序的速度——这是过早的优化。

更重要的是对代码的读者和修改者有意义的内容,以及最适合您尝试存储的数据的内容。在存储数据序列的地方,使用list. 在您存储映射的地方,使用dict.

于 2013-04-24T11:14:37.197 回答