Python: recuento de strings formables en Matrix

Dado Strings Matrix, la tarea es escribir un programa Python para contar strings que se pueden hacer a partir de letras de la lista dada.

Ejemplos:

Entrada : test_list = [[“gfg”, “best”], [“all”, “love”, “gfg”], [“gfg”, “is”, “good”], [“geeksforgeeks”]], tar_list = [“g”, “f”, “s”, “b”, “o”, “d”, “e”, “t”] Salida: 5 Explicación: gfg, best, gfg, 
gfg
good are strings que se pueden formar a partir de caracteres de la lista de destino.
 

Entrada : test_list = [[“gfg”, “best”], [“all”, “love”, “gfg”], [“gfg”, “is”, “good”], [“geeksforgeeks”]], tar_list = [“g”, “f”, “s”, “b”, “d”, “e”, “t”] Salida: 4 Explicación: gfg, best, gfg, gfg son strings que se pueden 
formar
partir de caracteres de la lista de destino. 

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

En esto, realizamos la tarea de iterar a través del ciclo usando for loop, all() se usa para verificar si cada elemento de la string tiene todas las letras de la lista de destino. Si se encuentra, el contador se incrementa.

Python3

# Python3 code to demonstrate working of
# Formable Strings Count in Matrix
# Using loop
 
# initializing list
test_list = [["gfg", "best"], ["all", "love", "gfg"],
             ["gfg", "is", "good"], ["geeksforgeeks"]]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing target list
tar_list = ["g", "f", "s", "b", "o", "d", "e", "t"]
 
res = 0
for sub in test_list:
    for ele in sub:
 
        # checking for all elements present using all()
        if all(el in tar_list for el in ele):
            res += 1
 
# printing result
print("The computed count : " + str(res))

Producción:

La lista original es: [[‘gfg’, ‘best’], [‘all’, ‘love’, ‘gfg’], [‘gfg’, ‘is’, ‘good’], [‘geeksforgeeks’]] 
La cuenta calculada: 5

Método n.º 2: usar la comprensión de listas + all() + sum()

En esto, el problema se resuelve en una línea usando la comprensión de listas, all() se usa para verificar todos los caracteres presentes y sum() se usa para calcular el número de strings después de la filtración de strings.

Python3

# Python3 code to demonstrate working of
# Formable Strings Count in Matrix
# Using list comprehension + all() + sum()
 
# initializing list
test_list = [["gfg", "best"], ["all", "love", "gfg"],
             ["gfg", "is", "good"], ["geeksforgeeks"]]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing target list
tar_list = ["g", "f", "s", "b", "o", "d", "e", "t"]
 
# computing summation using sum()
# list comprehension used to provide one liner solution
res = sum([sum([1 for ele in sub if all(el in tar_list for el in ele)])
           for sub in test_list])
 
# printing result
print("The computed count : " + str(res))

Producción:

La lista original es: [[‘gfg’, ‘best’], [‘all’, ‘love’, ‘gfg’], [‘gfg’, ‘is’, ‘good’], [‘geeksforgeeks’]] 
La cuenta calculada: 5

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 *