首页 > 解决方案 > 编号列表转移到垃圾箱

问题描述

如果我有一个清单:

a=[6,3,2,5,1,4]

并且一个特定的尺寸喜欢 3,所以数字 1~2 将标记为 1,3~4 标记为 2,5~6 标记为 3,喜欢列表 b:

b=[3,2,1,3,1,2]

我怎样才能有效地做到这一点?请注意,列表可能是浮点数

抱歉描述不清楚,更新更复杂的例子:

a=[2.5,1.4,1.6,2.1,1.5,0.7]

输出将是:

b=[3,1,2,3,2,1]

标签: pythonlist

解决方案


这就是你需要的:

import math
a=[6,3,2,5,1,4]
size = 3
b = list(a)
b.sort()
for i in range(len(a)) :
    w = len(b)/size                             #1
    a[i] = math.ceil((b.index(a[i]) + 1)/(w))   #2

print(a)

1:我们得到每个块的长度

2:我们正在获取该数字出现在我们的排序列表中的哪个块中,并将其替换为原始列表中的块编号


推荐阅读