Programa de Python para encontrar palabras poco comunes de dos strings

Dadas dos oraciones como strings A y B . La tarea es devolver una lista de todas las palabras poco comunes . Una palabra es poco común si aparece exactamente una vez en cualquiera de las oraciones y no aparece en la otra oración.

Nota: Una oración es una string de palabras separadas por espacios. Cada palabra se compone únicamente de letras minúsculas.

Ejemplos :

Input : A = "Geeks for Geeks" 
        B = "Learning from Geeks for Geeks"
Output : ['Learning', 'from']

Input : A = "apple banana mango" 
        B = "banana fruits mango"
Output : ['apple', 'fruits']

Enfoque: cada palabra poco común aparece exactamente una vez en cualquiera de las strings. Entonces, hacemos un hash para contar el número de ocurrencias de cada palabra, luego devolvemos una lista de palabras que ocurren exactamente una vez.

A continuación se muestra la implementación del enfoque anterior:

# Python3 program to find a list of uncommon words
  
# Function to return all uncommon words
def UncommonWords(A, B):
  
    # count will contain all the word counts
    count = {}
      
    # insert words of string A to hash
    for word in A.split():
        count[word] = count.get(word, 0) + 1
      
    # insert words of string B to hash
    for word in B.split():
        count[word] = count.get(word, 0) + 1
  
    # return required list of words
    return [word for word in count if count[word] == 1]
  
# Driver Code
A = "Geeks for Geeks"
B = "Learning from Geeks for Geeks"
  
# Print required answer
print(UncommonWords(A, B))
Producción:

['from', 'Learning']


Otra forma de solucionar este problema:

def uncommon(a,b):
    list_a = a.split()
    list_b = b.split()
    uc = ''
    for i in list_a:
        if i not in list_b:
            uc = uc+" "+i
    for j in list_b:
        if j not in list_a:
            uc = uc+" "+j
  
    return uc
  
# Driver code
a = "apple banana mango"
b = "banana fruits mango"
print(uncommon(a,b))
Producción:

['apple','fruits']

También otra forma de usar la función incorporada «symmetric_difference()»

def uncommon(a,b):
  a=a.split()
  b=b.split()
  k=set(a).symmetric_difference(set(b))
  return k
  
#Driver code
if __name__=="__main__":
  a="apple banana mango" 
  b="banana fruits mango"
  print(list(uncommon(a,b)))
Producción:

['apple', 'fruits']

Otra forma de solucionar este problema

def uncommon(A, B):
    un_comm = [i for i in "".join(B).split() if i not in "".join(A).split()]
    return un_comm
  
#Driver code
A = "Geeks for Geeks" 
B = "Learning from Geeks for Geeks"
print(uncommon(A, B))
Producción:

['Learning', 'from']

Publicación traducida automáticamente

Artículo escrito por Sanjit_Prasad 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 *