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 a
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