gpt4 book ai didi

python - 如何根据字符串对列表进行排序?

转载 作者:行者123 更新时间:2023-12-01 05:22:33 25 4
gpt4 key购买 nike

这里我尝试根据一个字符串对字符串列表进行排序,这是我的测试用例,

第一种情况:

par_str = "abcd"
list_str = ['bb','ba','ab']

sorted(list_str, key=par_str)

输出: ['ab','ba','bb']

第二种情况:

par_str = "bacd"
list_str = ['bb','ba','ab']

sorted(list_str, key=par_str)

输出: ['bb','ba','ab']

第一个案例列表的顺序根据 par_str 字符串进行了更改。第二个测试用例的列表顺序没有变化,因为它具有相同的优先级。那么上面的逻辑怎么写呢。我已经尝试过,但收到错误 TypeError: 'str' object is not callable

最佳答案

在字符和等级之间建立映射,并在 key 函数中使用该信息。

>>> par_str = "abcd"
>>> order = {c:i for i, c in enumerate(par_str)} # <------------
>>> order
{'a': 1, 'c': 2, 'b': 0, 'd': 3}
>>> list_str = ['bb','ba','ab']
>>> sorted(list_str, key=lambda s: [order[c] for c in s])
['ab', 'ba', 'bb']

>>> par_str = "bacd"
>>> order = {c:i for i, c in enumerate(par_str)} # <-----------
>>> order
{'a': 1, 'c': 2, 'b': 0, 'd': 3}
>>> list_str = ['bb','ba','ab']
>>> sorted(list_str, key=lambda s: [order[c] for c in s])
['bb', 'ba', 'ab']

关于python - 如何根据字符串对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005660/

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