gpt4 book ai didi

python - 如何使用 python 按给定的字母顺序对列表进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:19 25 4
gpt4 key购买 nike

输入:

Alpha = ['d', 'c', 'a', 'b']
words = ['dda', 'bdb', 'adc', 'cdd']

如何按照 Alpha 顺序对单词进行排序以获得以下结果?

words = ['dda', 'cdd', 'adc', 'bdb']

你能告诉我怎么做吗?

这里我尝试对列表进行排序,但不对字典键进行排序

最佳答案

这将根据您在 alpha 中指定的顺序按字典顺序对单词进行排序,方法是为每个单词制作一个索引列表(Python then compares lexicographically)

def sort_key(w):
return [alpha.index(ch) for ch in w]

words.sort(key=sort_key)

可能会有更有效的解决方案将 key 存储在哈希中(如 the answer to this question )。

另一种方法是将您的 alpha 变成 string.translate翻译表。

ascii_characters = ''.join(chr(i) for i in range(256))
translation = string.maketrans(''.join(alpha), ascii_characters[:len(alpha)])
words.sort(key=lambda w: w.translate(translation))

这种方式的一个优点是您可以将翻译放入字典中(可能)提高速度。

order = {w: w.translate(translation) for w in words}
words.sort(key=lambda w: order[w]))

关于python - 如何使用 python 按给定的字母顺序对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694849/

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