Por ejemplo, si tengo la cadena '4K892' y la incluyo en una lista con cada carácter separado. ¿Cómo imprimo el carácter más alto con este pedido "23456789TJQKA"
Pseudocódigo:
list = [4, K, 8, 9, 2]
Highestcharacter(list) = 'K'
3 respuestas
Puede utilizar el parámetro clave de la función max, por ejemplo
Versión lenta :
order = '23456789TJQKA'
result = max('4K892', key=order.index)
print(result)
Versión rápida :
order = '23456789TJQKA'
lookup = {v : i for i, v in enumerate(order)}
result = max('4K892', key=lookup.get)
print(result)
Tenga en cuenta que rápido y lento se refieren a la complejidad de las funciones, la versión lenta es O(n*2)
y la rápida la versión es O(n)
.
Yo usaría una búsqueda dict:
class Hand:
def __init__(self, hand):
self.ranking = {char: index for index, char in enumerate("23456789TJQKA")}
self.hand = hand
def sort(self):
self.hand.sort(key=lambda x: self.ranking[x])
def __str__(self):
return str(self.hand)
h = Hand(['4', 'K', '8', '9', '2'])
print(h) # ['4', 'K', '8', '9', '2']
h.sort()
print(h) # ['2', '4', '8', '9', 'K']
Presentación del algoritmo detrás de la función máxima (lista, clave)
Verifica todos los caracteres de su pseudo lista comenzando desde el final de su lista ordenada. Cada vez que hace una coincidencia, mantiene el resultado en una tercera matriz. El resultado más alto está en la misma celda que el carácter más alto de su pseudolista
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.