python - 通过它们在字母表中出现的索引“排列”字符串中的每个字符
问题描述
例如,我不知道如何从 arr1 = ['johaj'] --> arr2 = ['2','4','1','0','3'] 我无法获得很好地描述了我的意思,所以我希望你能从这个例子中理解它。我需要获取“字母索引”数组。
我将非常感谢解决方案,我该如何在 Python 中做到这一点。谢谢
解决方案
这将为您工作:
arr1 = ['johaj']
arr2 = []
for item in arr1:
origins = list(zip(item, list(range(len(item)))))
origins.sort()
ranks = list(range(len(item)))
positioned = {origin:rank for origin, rank in zip(origins, ranks)}
ranked = [None] * len(item)
for origin in origins:
ranked[origin[1]] = positioned[origin]
arr2.append(ranked)
print(arr2)
输出:
[[2, 4, 1, 0, 3]]
因为arr1
是一个数组,所以您必须遍历该数组才能获取每个项目。这意味着这arr2
将是一个二维数组,它将返回 中每个项目的排名arr1
。例如,如果:
arr1 = ['johaj', 'foo', 'bar']
它将输出:
[[2, 4, 1, 0, 3], [0, 1, 2], [1, 0, 2]]
推荐阅读
- json - flatten_json 给了我一长串列和一行而不是所需的数据框结构
- java - lwjgl glfwCreateWindow 导致崩溃
- python - 使用另一个表中的值更新记录 - MySQL (Python)
- django - 如何在 Django 中创建动态链接
- c - 在 C 中打印子字符串时出现虚假的换行符+空格
- amazon-web-services - 无法通过 SSH 连接到 AWS 实例 ubuntu 并且托管站点无法正常工作
- java - 如何在java中将表格从word文档复制到pdf文档?
- google-cloud-platform - GCP:如何将 Cloud Function 出口与 europe-north1 IP 地址相关联?
- javascript - 如何将 MongooseArray.prototype.pull() 与打字稿一起使用?
- express - Socket.io 房间没有收到消息