gpt4 book ai didi

python - python排序方法中的键如何使用列表

转载 作者:行者123 更新时间:2023-12-05 08:50:09 25 4
gpt4 key购买 nike

我是 Python 的新手。我看到了以下代码,但不明白如何使用“列表”对字符串进行排序。

    lookup = defaultdict(list)
## Filling the lookup
# .....
# .....
inputs = ['abc', 'acb', 'acb'] # a list of strings
result = ''.join(sorted(inputs[0], key=lookup.get))

我不明白的是最后一行是关键部分。我知道它会根据列表中的值进行字典排序。如果有人可以解释它或将此步骤分解为更具可读性的解决方案,我将不胜感激。

例如,如果查找表如下所示:

   {'a' : [-3, 0, 0], 'b': [0, -1, -2], 'c': [0, -2, -1]}

那么结果就是这个acb

最佳答案

sortedkey 参数表示“假设该值是该函数的结果而不是实际值。”因此,当您使用您提供的查找表对 'abc' 进行排序时,它会执行以下操作:

                # [1st, 2nd, 3rd] sort order
lookup.get('a') # [ -3, 0, 0]
lookup.get('b') # [ 0, -1, -2]
lookup.get('c') # [ 0, -2, -1]

然后它将计算出上述值的排序顺序。列表按字典顺序排序,这意味着首先比较第一个元素,就像在字典中一样(“aardvark”出现在“beaver”之前,也出现在“ant”之前)。

在查看第一个元素 (-3, 0, 0) 后,我们知道 'a' 具有最小值,但我们不知道 'b' 和 'c' 中哪个更小。但是一旦我们看到第二个元素 (0, -1, -2),我们就知道 'c' 更小,所以最终的顺序是 'acb' 而无需咨询第三个元素 (0, -2, -1 ).

关于python - python排序方法中的键如何使用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62724248/

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