【问题标题】:What is an efficient data structure to store multiple variable-sized sets of numbers?存储多个可变大小的数字集的有效数据结构是什么?
【发布时间】:2017-04-07 12:22:30
【问题描述】:

我有多组数字,像这样:

第 1 组:1,2,3,5,4,3,2,1

第 2 组:1,2,1,1

第 3 组:1,1,1,0

第 4 组:1,9

组的数量将由用户指定,以及每组可以包含多少个数字。然后,程序将随机填充这些值。

现在,我正在使用具有维度的二维数组

[maximum(set-sizes)][maximum(elements_in_set)]

并将未使用的单元格设置为较大的负数以表示它们不可用。 虽然这符合我的目的,但我想知道是否有更好的数据结构可以使用。

【问题讨论】:

  • 什么编程语言?
  • @Rapid Python 2
  • “高效”有很多含义。您更关心速度还是空间使用?只要访问速度快,您是否关心构建需要多长时间?你有多少这样的套装,它们有多大?这是您要做一次然后扔掉的事情,还是将成为定期使用的高性能系统的一个组成部分?
  • 我最多有10组,每组最多可以有10个号码。我希望能够快速构建,因为这是我将只使用一次的东西。另外,我更关心速度。
  • 10 个集合,每个集合中最多 10 个数字导致最大总标识数为 100,这对于现代计算机在时间和空间上都不是一个大问题,即使您使用 2 -d 要处理的矩阵。

标签: python python-2.7 list multidimensional-array data-structures


【解决方案1】:

您可以简单地创建一个列表列表:

>>> numbers = [
...     [1, 2, 3, 5, 4, 3, 2, 1],
...     [1, 2, 1, 1],
...     [1, 1, 1, 0],
...     [1, 9]
... ]

>>> numbers[3]
[1, 9]

请注意,您描述的不是集合,因为它们没有顺序,并且每个元素只能包含一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2011-02-06
    • 2019-04-09
    相关资源
    最近更新 更多