按键对列表进行排序并以与第一个相同的方式对另一个列表进行排序?

古斯

例如有三个列表:

unsorted_key = ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p']
sorted_key = ['e', 'i', 'o', 'p', 'q', 'r', 't', 'u', 'w', 'y']
ciphertext = [
              ['u', 't', 'x', 'e'],
              ['p', 'r', 'k', 'p'],
              ['v', 'n', 'x', 'a'],
              ['n', 'h', 'e', 'x'],
              ['x', 'h', 'm', 's'],
              ['l', 'x', 'c', 'x'],
              ['x', 'c', 'y', 'a'],
              ['t', 'u', 'o', 'x'],
              ['e', 'r', 'm', 'e'],
              ['y', 'y', 'e', 'x']
             ]

是否可以取sorted_key的顺序排序到unsorted_key中,取密文的顺序,以相同的方式排序?

将 'q' 从 sorted_key[4] 移动到 sorted_key[0] 时,应该将 ciphertext[4] 移动到 ciphertext[0]。

  • 所有三个列表的长度总是相等的。
  • sorted_key 和 unsorted_key 永远不会有重复元素。
  • sorted_key 将始终是 unsorted_key 的排序版本。

我一直在考虑它,我能想到的唯一方法是使用辅助函数从 unsorted_key 的顺序动态生成和返回一个 lambda 函数,然后使用类似的东西:

sorted_key, ciphertext = (list(i) for i in zip(*sorted(zip(sorted_key, ciphertext), key=generate(unsorted_key))))

但我真的不知道 zip() 或 lambda 函数是如何工作的,也不知道如何将自定义排序顺序合二为一,或者甚至可以返回以在 sorted() 中使用。我似乎真的无法解决这个问题,所以任何帮助将不胜感激!

祝福

在线性时间内解决这个问题的一种有效方法是创建一个将键映射到索引的sorted_key字典,然后创建一个映射字典,将索引映射unsorted_keysorted_key基于相同键的索引,以便您可以通过ciphertext按映射顺序生成列表的长度范围

order = dict(map(reversed, enumerate(sorted_key)))
mapping = {i: order[k] for i, k in enumerate(unsorted_key)}
print([ciphertext[mapping[i]] for i in range(len(ciphertext))])

这输出:

[['x', 'h', 'm', 's'], ['e', 'r', 'm', 'e'], ['u', 't', 'x', 'e'], ['l', 'x', 'c', 'x'], ['x', 'c', 'y', 'a'], ['y', 'y', 'e', 'x'], ['t', 'u', 'o', 'x'], ['p', 'r', 'k', 'p'], ['v', 'n', 'x', 'a'], ['n', 'h', 'e', 'x']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一个列表对列表进行排序

来自分类Dev

从另一个列表对json列表进行排序

来自分类Dev

根据另一个列表对列表进行排序

来自分类Dev

如何基于另一个文件构建新列表并以某种方式对其进行排序

来自分类Dev

将列表的第一个元素与另一个列表进行比较

来自分类Dev

Python根据另一个列表对一个列表进行排序

来自分类Dev

需要更好的方法将一个列表与另一个列表进行排序

来自分类Dev

Scala根据另一个列表中的值对一个列表进行排序

来自分类Dev

使用一个列表对另一个列表进行排序

来自分类Dev

按内部列表的第一个元素对列表列表进行排序(Java或groovy)

来自分类Dev

如何根据另一个活动的可排序列表对列表进行重新排序?

来自分类Dev

按另一个列表的排序顺序对列表进行排序

来自分类Dev

这是基于另一个列表的排序排列对列表进行排序的不好方法吗?

来自分类Dev

根据另一个排序列表在python中对列表进行排序

来自分类Dev

根据另一个排序的嵌套列表python对嵌套列表进行排序

来自分类Dev

如何根据另一个活动的可排序列表对列表进行重新排序?

来自分类Dev

根据另一个列表的排序索引对列表进行排序

来自分类Dev

根据另一个数组对一个列表进行排序

来自分类Dev

Python:基于无类型的第一个对两个列表进行排序

来自分类Dev

Python:如何根据另一个列表对列表进行排序

来自分类Dev

根据另一个列表的内容对列表进行排序

来自分类Dev

根据另一个列表值对列表的索引值进行排序

来自分类Dev

根据R中另一个列表的顺序对列表进行排序

来自分类Dev

使用另一个列表对Python列表中的字符串进行排序

来自分类Dev

如何根据另一个列表对列表进行排序?Python

来自分类Dev

如何使用Linq使用另一个列表的值对列表进行排序

来自分类Dev

使用另一个列表的比较对列表进行排序

来自分类Dev

按另一个内存列表对内存列表进行排序

来自分类Dev

根据另一个列表值对列表的索引值进行排序

Related 相关文章

  1. 1

    根据另一个列表对列表进行排序

  2. 2

    从另一个列表对json列表进行排序

  3. 3

    根据另一个列表对列表进行排序

  4. 4

    如何基于另一个文件构建新列表并以某种方式对其进行排序

  5. 5

    将列表的第一个元素与另一个列表进行比较

  6. 6

    Python根据另一个列表对一个列表进行排序

  7. 7

    需要更好的方法将一个列表与另一个列表进行排序

  8. 8

    Scala根据另一个列表中的值对一个列表进行排序

  9. 9

    使用一个列表对另一个列表进行排序

  10. 10

    按内部列表的第一个元素对列表列表进行排序(Java或groovy)

  11. 11

    如何根据另一个活动的可排序列表对列表进行重新排序?

  12. 12

    按另一个列表的排序顺序对列表进行排序

  13. 13

    这是基于另一个列表的排序排列对列表进行排序的不好方法吗?

  14. 14

    根据另一个排序列表在python中对列表进行排序

  15. 15

    根据另一个排序的嵌套列表python对嵌套列表进行排序

  16. 16

    如何根据另一个活动的可排序列表对列表进行重新排序?

  17. 17

    根据另一个列表的排序索引对列表进行排序

  18. 18

    根据另一个数组对一个列表进行排序

  19. 19

    Python:基于无类型的第一个对两个列表进行排序

  20. 20

    Python:如何根据另一个列表对列表进行排序

  21. 21

    根据另一个列表的内容对列表进行排序

  22. 22

    根据另一个列表值对列表的索引值进行排序

  23. 23

    根据R中另一个列表的顺序对列表进行排序

  24. 24

    使用另一个列表对Python列表中的字符串进行排序

  25. 25

    如何根据另一个列表对列表进行排序?Python

  26. 26

    如何使用Linq使用另一个列表的值对列表进行排序

  27. 27

    使用另一个列表的比较对列表进行排序

  28. 28

    按另一个内存列表对内存列表进行排序

  29. 29

    根据另一个列表值对列表的索引值进行排序

热门标签

归档