Python: extraiga strings con alfabetos sucesivos en orden alfabético

Dada una lista de strings, extraiga la lista que tiene cualquier sucesión de caracteres tal como aparecen en orden alfabético.

Entrada : test_list = [‘gfg’, ‘ij’, ‘best’, ‘for’, ‘geeks’] 
Salida : [‘ij’, ‘gfg’, ‘best’] 
Explicación : ij, fg, st son pares consecutivos .

Entrada : test_list = [‘gf1g’, ‘in’, ‘besht’, ‘for’, ‘geeks’] 
Salida : [] 
Explicación : No hay pares consecutivos. 

Método #1: Usar ord() + loop

En esto, verificamos para cada string si contiene un carácter con es el sucesor alfabético de su carácter anterior, la conversión ASCII se realiza usando ord().

Python3

# Python3 code to demonstrate working of 
# Extract Strings with successive Alphabets
# Using ord() + loop
  
# initializing string list
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
  
# printing original list
print("The original list is : " + str(test_list))
  
res = []
for sub in test_list:
      
    # iterating for string 
    for idx in range(len(sub) - 1):
          
        # checking for alphabetic consecution
        if ord(sub[idx]) == ord(sub[idx + 1]) - 1:
            res.append(sub)
            break
      
# printing result 
print("Strings with alphabetic consecution : " + str(res))
Producción

The original list is : ['gfg', 'is', 'best', 'for', 'geeks']
Strings with alphabetic consecution : ['gfg', 'best']

Método #2: Usar any() + filter() + lambda

En esto, verificamos cualquier sucesión usando any(), y la tarea de filtrado se realiza usando filter() y la función lambda.

Python3

# Python3 code to demonstrate working of
# Extract Strings with successive Alphabets
# Using any() + filter() + lambda
  
# initializing string list
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
  
# printing original list
print("The original list is : " + str(test_list))
  
# filtering using filter, and checking for any substring using any()
res = list(filter(lambda sub: any(ord(sub[idx]) == ord(
    sub[idx + 1]) - 1 for idx in range(len(sub) - 1)), test_list))
  
# printing result
print("Strings with alphabetic consecution : " + str(res))
Producción

The original list is : ['gfg', 'is', 'best', 'for', 'geeks']
Strings with alphabetic consecution : ['gfg', 'best']

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *