如何在列表中找到按特定顺序排列并包含字母的最高字符?

mic*_*ael 1 python python-3.x

例如,如果我有字符串“ 4K892”,并将其放入每个字符分开的列表中。如何使用此顺序“ 23456789TJQKA”打印最高字符

伪代码:

list = [4, K, 8, 9, 2]
Highestcharacter(list) = 'K'
Run Code Online (Sandbox Code Playgroud)

Dan*_*ejo 6

您可以使用max函数的key参数,例如

慢版本

order = '23456789TJQKA'
result = max('4K892', key=order.index)
print(result)
Run Code Online (Sandbox Code Playgroud)

快速版本

order = '23456789TJQKA'
lookup = {v : i for i, v in  enumerate(order)}
result = max('4K892', key=lookup.get)
print(result)
Run Code Online (Sandbox Code Playgroud)

请注意,快速慢速是指功能的复杂性,慢速版本是O(n*2)快速版本是O(n)