gpt4 book ai didi

Python:对字符串列表进行排序,以便它们出现在另一个字符串中

转载 作者:行者123 更新时间:2023-12-05 01:47:32 24 4
gpt4 key购买 nike

我正在寻找一种方法来按照在另一个字符串中出现的顺序对列表进行排序,以便下面的代码

thelist = ["a", "b", "c"]
thestring = "b c a"

将能够整理成

["b", "c", "a"]

因为这是每个列表对象在字符串中出现的顺序。

我将如何实现这一目标?是否可以使用带有特定参数的排序函数来轻松实现此目的或其他目的?谢谢。

最佳答案

将您的字符串转换为 map :

indices = {c: i for i, c in enumerate(thestring.split())}

然后使用该映射进行排序:

sorted(thelist, key=indices.get)

这允许 thelistthestring missing 的值,反之亦然。这也适用于 thelist 中的重复元素。

演示:

>>> thestring = "b c a"
>>> indices = {c: i for i, c in enumerate(thestring.split())}
>>> sorted(['a', 'b', 'c'], key=indices.get)
['b', 'c', 'a']
>>> sorted(['a', 'b', 'c', 'a', 'c', 'b'], key=indices.get)
['b', 'b', 'c', 'c', 'a', 'a']
>>> sorted(['a', 'a', 'a'], key=indices.get)
['a', 'a', 'a']
>>> sorted(['a', 'e', 'b'], key=indices.get)
['e', 'b', 'a']

关于Python:对字符串列表进行排序,以便它们出现在另一个字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com