2024-04-25 01:31:53 发布
网友
我有两个列表ns和ts。我想对ns进行排序,然后根据排序方式,在ts周围移动,使其相应地匹配ns。类似这样的输入和输出:
ns
ts
ns = (0 4 2 5 1) ts = (1 2 3 4 5) ns = (0 1 2 4 5) ts = (1 5 3 2 4)
我知道我可以通过ns.sort()和ts.sort()对它们进行排序,但这只会有助于对ns进行排序。你知道吗
ns.sort()
ts.sort()
您可以对压缩在一起的两个列表进行排序:
In [5]: sorted(zip(ns, ts)) Out[5]: [(0, 1), (1, 5), (2, 3), (4, 2), (5, 4)]
然后抓住元组中的第二个元素:
In [6]: [pair[1] for pair in sorted(zip(ns, ts))] Out[6]: [1, 5, 3, 2, 4]
或可读性较差:
zip(*sorted(zip(ns, ts)))[1]
压缩、排序、解压缩、解包:
ns = (0, 4, 2, 5, 1) ts = (1, 2, 3, 4, 5) ns, ts = zip(*sorted(zip(ns, ts)))
您可以对压缩在一起的两个列表进行排序:
然后抓住元组中的第二个元素:
或可读性较差:
压缩、排序、解压缩、解包:
相关问题 更多 >
编程相关推荐