Dada una array de strings, ordene cada fila según el número de strings palindrómicas.
Entrada : test_list = [[“nitin”, “meem”, “geeks”], [“peep”], [“gfg”, “is”, “best”], [“ve”, “level”, “mom ”, “mediodía”]]
Salida : [[‘peep’], [‘gfg’, ‘is’, ‘best’], [‘nitin’, ‘meem’, ‘geeks’], [‘ve’, ‘ level’, ‘mom’, ‘noon’]]
Explicación : 1 = 1 < 2 < 4 es un orden de conteo palindrómico.Entrada : test_list = [[“nitin”, “meem”, “geeks”], [“peep”], [“ve”, “level”, “mom”, “noon”]]
Salida : [[‘peep’ ], [‘nitin’, ‘meem’, ‘geeks’], [‘ve’, ‘level’, ‘mom’, ‘noon’]]
Explicación : 1 < 2 < 4 es un orden de conteo palindrómico.
Método #1: Usar invertido() + len() + sort()
En esto, realizamos una ordenación in situ usando sort(), el cálculo de la longitud y la verificación de Palindrome se realiza usando reversed().
Python3
# Python3 code to demonstrate working of # Sort Matrix by Palindrome count # Using reversed() + len() + sort() # get palin def get_palin_freq(row): # returning length return len([sub for sub in row if ''.join(list(reversed(sub))) == sub]) # initializing list test_list = [["nitin", "meem", "geeks"], ["peep"], ["gfg", "is", "best"], ["sees", "level", "mom", "noon"]] # printing original list print("The original list is : " + str(test_list)) # performing sort test_list.sort(key=get_palin_freq) # printing result print("Sorted rows : " + str(test_list))
Producción:
La lista original es: [[‘nitin’, ‘meem’, ‘geeks’], [‘peep’], [‘gfg’, ‘is’, ‘best’], [‘ve’, ‘level’, ‘ mamá’, ‘mediodía’]]
Filas ordenadas: [[‘peep’], [‘gfg’, ‘is’, ‘best’], [‘nitin’, ‘meem’, ‘geeks’], [‘ve’ , ‘nivel’, ‘mamá’, ‘mediodía’]]
Método #2: Usar sorted() + len() + reversed()
Similar al método anterior, la diferencia que se ordena() se usa junto con la función lambda para realizar la tarea en una sola línea sin la llamada a la función externa.
Python3
# Python3 code to demonstrate working of # Sort Matrix by Palindrome count # Using sorted() + len() + reversed() # initializing list test_list = [["nitin", "meem", "geeks"], ["peep"], ["gfg", "is", "best"], ["sees", "level", "mom", "noon"]] # printing original list print("The original list is : " + str(test_list)) # performing sort # sorted() and lambda used to get 1 sentence approach res = sorted(test_list, key=lambda row: len( [sub for sub in row if ''.join(list(reversed(sub))) == sub])) # printing result print("Sorted rows : " + str(res))
Producción:
La lista original es: [[‘nitin’, ‘meem’, ‘geeks’], [‘peep’], [‘gfg’, ‘is’, ‘best’], [‘ve’, ‘level’, ‘ mamá’, ‘mediodía’]] Filas ordenadas: [[‘peep’], [‘gfg’, ‘is’, ‘best’], [‘nitin’, ‘meem’, ‘geeks’], [‘ve’ , ‘nivel’, ‘mamá’, ‘mediodía’]]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA