我有一个列表中的某些重复对象,例如:
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'
]
任何想法我都会很高兴。