python - 编号列表转移到垃圾箱
问题描述
如果我有一个清单:
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]
解决方案
这就是你需要的:
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:我们正在获取该数字出现在我们的排序列表中的哪个块中,并将其替换为原始列表中的块编号
推荐阅读
- java - 将 JSONArray 中的 Base64 字符串解码为 JAVA 中的字节列表
- mongodb - [listener]等待27017端口连接后分析$ Mongod Sever启动数据
- javascript - 尝试使用 GitHub 发布时,GitHub 页面出现 404 错误
- file - 如何配置 Azure 逻辑应用的 SFTP-SSH 连接器以传输“Windows”格式的文件?
- c++ - 如何在友元函数中使用静态成员而不加前缀 [类名]::
- ubuntu - 在 VSCode 中,当我尝试使用快捷方式复制一行时,Ubuntu 正在触发移动到不同工作区的快捷方式?
- c++ - 在可变参数模板实例化期间函数不可见
- amazon-web-services - 当驱动程序在主节点上运行时,Spark History Server 非常慢
- r - 当我展开它们时,RStudio 使我的图形变灰
- java - 如何使用 Pin 码或邮政编码添加正则表达式?