我在继续我的工作流程时遇到问题。我正在使用vanilla python尝试将字符串列表按某种均匀分布的顺序排序
输入是一个给定的长度,然后将其分割以收集列表中所需的唯一实例的数量。然后,需要围绕列表中心索引对该列表进行尽可能均匀的排序
输入列表: C、 C,C,C,C,B,B,AB
预期输出列表: C、 B,C,AB,C,B,C,C
我太困了,请帮帮我
迄今为止的代码:
import math
def AddItem(list,item,index):
result = []
for idx, ele in enumerate(list):
# if index multiple of N
if idx % index == 0:
# extend to append all elements
result.extend(item)
result.append(ele)
return result
lengths = [14421.46,691.99,6992.992,6946.004]
spacings = [8025,3210,1605]
result = []
spacings1 = []
for s in spacings:
if s == None:
pass
else:
spacings1.append(s)
divisions = []
nums = []
for l in lengths:
pack = []
for s in spacings1:
n = math.ceil(l/s)
if n < 1:
r = 1
else:
r = n
pack.append(r)
nums.append(pack)
for p in nums:
types = []
l_num = p[0]
for x in xrange(l_num):
types.append("AB")
t_num = p[1]-p[0]
for x in xrange(t_num):
types.append("B")
try:
g_num = p[2]
for x in xrange(g_num):
types.append("C")
except:
pass
result.append(types)
OUT = result
您可以将1除以每个唯一项的数量再加上1,得到该项的分数,并将这些项划分为分数的倍数,以便所得倍数可用作排序键:
这将产生:
相关问题 更多 >
编程相关推荐