A veces, mientras trabajamos con strings de Python, podemos tener un problema en el que necesitamos extraer todos los caracteres de string que tienen un número impar de ocurrencias. Este problema puede tener aplicaciones en dominios como el dominio de datos y la programación día a día. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_str = ‘geekforgeeks’ Salida : [‘r’, ‘o’, ‘f’, ‘s’] Entrada : test_str = ‘g’ Salida : [‘g’]
Método #1: Usar defaultdict() + comprensión de lista + bucle
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, inicializamos el predeterminadodict() con un número entero y luego realizamos el conteo de frecuencia. La comprensión de listas se utiliza para extraer todas las frecuencias impares.
Python3
# Python3 code to demonstrate working of # Odd Frequency Characters # Using list comprehension + defaultdict() from collections import defaultdict # helper_function def hlper_fnc(test_str): cntr = defaultdict(int) for ele in test_str: cntr[ele] += 1 return [val for val, chr in cntr.items() if chr % 2 != 0] # initializing string test_str = 'geekforgeeks is best for geeks' # printing original string print("The original string is : " + str(test_str)) # Odd Frequency Characters # Using list comprehension + defaultdict() res = hlper_fnc(test_str) # printing result print("The Odd Frequency Characters are :" + str(res))
The original string is : geekforgeeks is best for geeks The Odd Frequency Characters are : ['k', 'i', 't', 'g', 'e', 'b']
Método n.º 2: Uso de la comprensión de listas + Contador()
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, usamos Counter() para contar la frecuencia.
Python3
# Python3 code to demonstrate working of # Odd Frequency Characters # Using list comprehension + Counter() from collections import Counter # initializing string test_str = 'geekforgeeks is best for geeks' # printing original string print("The original string is : " + str(test_str)) # Odd Frequency Characters # Using list comprehension + Counter() res = [ chr for chr, count in Counter(test_str).items() if count & 1 ] # printing result print("The Odd Frequency Characters are : " + str(res))
The original string is : geekforgeeks is best for geeks The Odd Frequency Characters are : ['k', 'i', 't', 'g', 'e', 'b']
Método #3: Usando el método count().
Usando set() eliminaremos los duplicados en una string, luego encontraremos la frecuencia de cada carácter en la string usando el método count(). Si la frecuencia es impar, agréguela a la lista de salida.
Python3
# Python3 code to demonstrate working of # Odd Frequency Characters # initializing string test_str = 'geekforgeeks is best for geeks' # printing original string print("The original string is : " + str(test_str)) # Odd Frequency Characters x=set(test_str) res=[] for i in x: if(test_str.count(i)%2!=0): res.append(i) # printing result print("The Odd Frequency Characters are : " + str(res))
The original string is : geekforgeeks is best for geeks The Odd Frequency Characters are : ['k', 'e', 'i', 't', 'g', 'b']
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