排序列表中的项目,彼此之间的最大距离

时间:2019-12-10 00:39:33

标签: python-3.x sorting

我有一个列表中的某些重复对象,例如:

foo = [
    'sometext', 'abrakadabra', 'blabla', 'sometext', 'sometext', 'sometext',
    'abrakadabra', 'blabla', 'blabla', 'text', 'text'
]

我想对这个列表进行排序,以使每个重复元素都尽可能地远离彼此。 例如,我制作了仅对一个重复元素进行排序的函数:

elem_name = 'sometext'
elem_count = foo.count('sometext')
step = int(len(foo)/elem_count)
while elem_name in foo:
    foo.remove(elem_name)
cn = 0
for _ in range(elem_count):
    foo.insert(cn, elem_name)
    cn += step + 1

但是我需要一些可以对所有元素进行排序的东西。例如,我期望的是:

res = [
    'sometext', 'abrakadabra', 'text', 'sometext', 'blabla', 'abrakadabra',
    'sometext', 'blabla', 'text', 'sometext'
]

任何想法我都会很高兴。

0 个答案:

没有答案