有这种类似question,但不完全是我所问的。在列表中按长度排序查找具有相同值的子序列的索引
比方说,我有1和0的列表:
# i.e. [1, 0, 0, 0, 1, 1, 1, 1, 0, 1]
sample = np.random.randint(0, 2, (10,)).tolist()
我试图找到相同的值,其长度排序的子序列的指数。因此,在这里,我们将有以下列表:
[1, 1, 1, 1]
[0, 0, 0]
[1]
[0]
[1]
因此,他们的指数是[4, 1, 0, 8, 9]
。
我可以排序的子序列这样做:
sorted([list(l) for n, l in itertools.groupby(sample)], key=lambda l: -len(l))
但是,如果我得到重复的子我将无法找到指数马上(我将不得不使用另一个循环)。
我觉得有一个更直接和Pythonic的方式来做我以后的事情,就像回答前面的问题一样。这是我正在寻找的。
你能告诉什么输出应该是什么样子的? –
我只是这样做的:'[4,1,0,8,9]'。 – dabadaba