mzed 的答案有效,如列表中所述,如果列表没有重叠索引,它们不应该基于您指定的设计。
如果您将“巨大列表”视为多个列表,反之亦然,这可能有助于找到答案。有些人可能会问的一个问题是“你为什么要再次合并它?”
- 你认为你的程序有一个大列表
- 该大列表实际上是一个界面,可以处理您如何与多个子列表进行交互以提高效率
- 用于存储和检索的数据持久性(列表)的接口然后就像一个大列表一样,但可以在后台使用多个
- 一种用于处理多个列表的插入和检索机制,因为您的界面应该存在一个列表
- 单独保存和重新加载子列表
如果你把它包装成一个 poly~,语音充当子列表,所以当我说语音时,我基本上是指 sublist:你可以使用一个通用的发送/接收进出一个 poly~ 抽象,其中包含你的子列表的唯一 coll,来自 poly~ 的语音# 可以唯一地附加到您正在读取/保存到该语音 [coll] 的子列表文件名。
通过该设置,您可以在 poly~ 参数中指定所需的子列表(声音)的数量和主列表长度,例如:
[poly~ sublist_manager.maxpat 10 1000] // 10 sublists emulating a 1000-length list
索引查找的数学是:
//main variables for master list creation/usage
master_list_length = 1000
sublist_count = 10
sublist_length = master_list_length/sublist_count;
//variables created when inserting/looking up an index
sublist_number = (desired_index/sublist_count); //integer divide to get the base sublist you'll be performing the lookup in
sublist_index = (desired_index%sublist_length); //actual index within your sublist to access
如果上面的 ^ 更接近您正在寻找的内容,我可以为此制作补丁。干杯