Python – Caracteres de frecuencia impar

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))
Producción : 

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))
Producción : 

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))
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *