A veces, mientras trabajamos con datos de Python, podemos tener un problema en el que necesitamos extraer todas las coordenadas en Matrix, que son caracteres. Este tipo de problema puede tener una aplicación potencial en dominios como el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_list = [‘1G’, ’12F’, ‘231G’]
Salida : [(0, 1), (1, 2), (2, 3)]Entrada : test_list = [‘G’, ‘F’, ‘G’]
Salida : [(0, 0), (1, 0), (2, 0)]
Método #1: Usarenumerate() + list comprehension + isalpha()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de trabajar con índices usando enumerate y el filtrado de caracteres se realiza usando isalpha().
# Python3 code to demonstrate working of # Character coordinates in Matrix # Using enumerate() + list comprehension + isalpha() # initializing list test_list = ['23f45.;4d', '5678d56d', '789', '5678g'] # printing original list print("The original list is : " + str(test_list)) # Character coordinates in Matrix # Using enumerate() + list comprehension + isalpha() res = [(x, y) for x, val in enumerate(test_list) for y, chr in enumerate(val) if chr.isalpha()] # printing result print("Character indices : " + str(res))
The original list is : ['23f45.;4d', '5678d56d', '789', '5678g'] Character indices : [(0, 2), (0, 8), (1, 4), (1, 7), (3, 4)]
Método n.º 2: usar regex()
el bucle +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de filtrar alfabetos usando expresiones regulares. Simplemente devuelve la primera aparición de un carácter en cada string.
# Python3 code to demonstrate working of # Character coordinates in Matrix # Using regex() + loop import re # initializing list test_list = ['23f45.;4d', '5678d56d', '789', '5678g'] # printing original list print("The original list is : " + str(test_list)) # Character coordinates in Matrix # Using regex() + loop res = [] for key, val in enumerate(test_list): temp = re.search('([a-zA-Z]+)', val) if temp : res.append((key, temp.start())) # printing result print("Character indices : " + str(res))
The original list is : ['23f45.;4d', '5678d56d', '789', '5678g'] Character indices : [(0, 2), (1, 4), (3, 4)]
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