【发布时间】:2019-08-15 21:16:59
【问题描述】:
给定:随机打乱的唯一话语 ID 列表和说话者列表,各个话语所属(以相同顺序)
问题: 如何对 uttIDList 重新排序,以便每个具有 32 个元素的子列表(从步长为 32 的第一个元素开始)包含来自不同说话者的话语? 重要的是,如果我们在不同的混洗列表上重新运行算法,我们也会得到不同的子列表。
例如:
uttIDList = [1, 0, 9, 7, 100, 2, 3, 8301, ...] (length dividable by 32)
spkIDList = [0, 0, 3, 2, 1, 4, 20, 4, ...]
sublist0 = uttIDList[0:32]
sublist1 = uttIDList[32:64]
...
sublistN = uttIDList[N-32,N]
【问题讨论】:
-
spkIDList中的每个 id 会重复相同的次数吗? -
为什么原始的洗牌列表很重要?是否有一些要求尽可能地保留原始的洗牌顺序?你试过什么了?这似乎是一个简单的问题:选择 32 个话语;删除重复扬声器并替换为新的选择。重复直到发言者列表是唯一的。在最后几个子列表中调整未被充分选择的演讲者。
-
@brandon 不,遗憾的是没有。我的猜测是,可能没有适用于所有情况的解决方案,可以从 uttIDList 中截取一部分以使其工作
-
对——如果某个演讲者给我们的话语比我们的子列表多,那么就没有解决方案。请澄清完整的问题并展示您目前的攻击。
-
当你达成一个决议时,请记得给有用的答案投票并接受最好的答案(即使你必须自己写)。这允许 Stack Overflow 归档您的问题。
标签: python python-3.x algorithm sorting shuffle