我希望在数组中分发所有重复的值。 (我不知道用什么名称来描述)。
我将以一个例子向您解释。
我有一个重复值的数组:
IN:
['foo', 'foo', 'bar', 'bar', 'bli', 'bli']
我想要一个包含所有值的数组。在2次重复值之间有最大的场/空间。
OUT:
['foo', 'bar', 'bli', 'foo', 'bar', 'bli']
如果您喜欢使用包含数字的数组也可能对我有好处:
IN:
[1, 1, 2, 3, 2, 3]
OUT:
[1, 2, 3, 1, 2, 3]
在更糟糕的情况下,我可以拥有几个具有多个重复值X时间的uniq值。
如果某人有算法名称或实现(Python将是完美的:p)
谢谢,
GAEL
答案 0 :(得分:0)
试试这个:
from collections import Counter
lst = ['foo', 'foo', 'bar', 'bar', 'bli', 'bli']
x = Counter(lst)
max = max(Counter(lst).values())
result_lst = []
for i in range(max):
for key in x.keys():
if x[key]:
result_lst.append(key)
x[key] -= 1
print result_lst