Programa de Python que imprime elementos comunes en el índice especificado de elementos de la lista

Dada una lista de strings, la tarea es escribir un programa Python para extraer todos los caracteres que son iguales en un índice específico de cada elemento de una lista.

Entrada : test_list = [“geeks”, “weak”, “beak”, “peek”] 
Salida : [‘e’, ‘k’] 
Explicación : e y k son iguales en un índice en todas las strings.

Entrada : test_list = [“geeks”, “weak”, “beak”, “peer”] 
Salida : [‘e’] 
Explicación : e está al mismo tiempo en un índice en todas las strings. 
 

Método 1: Usar min() , len() y loop

En esto, inicialmente se extrae la string de longitud mínima para verificar los índices para iterar y garantizar todos los índices en las strings. Luego, cada índice se verifica en busca de un carácter similar usando un bucle; si se encuentra, el carácter se agrega al resultado.

Python3

# initializing Matrix
test_list = ["geeks", "weak", "beak", "peek"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# getting min length string
min_len = min(len(ele) for ele in test_list)
 
res = []
for idx in range(0, min_len):
    flag = True
    for ele in test_list:
 
        # checking for all equal columns
        if ele[idx] != test_list[0][idx]:
            flag = False
            break
 
    if flag:
        res.append(test_list[0][idx])
 
 
# printing result
print("Extracted similar characters : " + str(res))

Producción:

La lista original es: [‘geeks’, ‘weak’, ‘beak’, ‘peek’]

Caracteres similares extraídos: [‘e’, ‘k’]

Método 2: Usar all() , min() , len() y loop

En esto, realizamos la tarea de verificar que todos los elementos coincidan usando all(), reduciendo un bucle anidado y aumentando la legibilidad.

Python3

# initializing Matrix
test_list = ["geeks", "weak", "beak", "peek"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# getting min length string
min_len = min(len(ele) for ele in test_list)
 
res = []
for idx in range(0, min_len):
 
    # using all() for condition injection
    if all(ele[idx] == test_list[0][idx] for ele in test_list):
        res.append(test_list[0][idx])
 
# printing result
print("Extracted similar characters : " + str(res))

Producción:

La lista original es: [‘geeks’, ‘weak’, ‘beak’, ‘peek’]

Caracteres similares extraídos: [‘e’, ‘k’]

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad temporal: O(n 2 )

Complejidad espacial: O(n)

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 *