Python | Cuente la ocurrencia de todos los elementos de la lista en una tupla

Dada una tupla y una lista como entrada, escriba un programa Python para contar las ocurrencias de todos los elementos de la lista en la tupla. Ejemplos:

Input : tuple = ('a', 'a', 'c', 'b', 'd')
        list = ['a', 'b']
Output : 3 

Input : tuple = (1, 2, 3, 1, 4, 6, 7, 1, 4)
        list = [1, 4, 7]
Output : 6

  Enfoque #1: Enfoque Ingenuo El primer enfoque es el enfoque ingenuo. Use un bucle for y recorra la lista dada y cuente la aparición de cada elemento de la tupla en una lista. Finalmente, devuelve el conteo. 

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
from collections import Counter
 
def countOccurrence(tup, lst):
    count = 0
    for item in tup:
        if item in lst:
            count+= 1
     
    return count
     
# Driver Code
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
print(countOccurrence(tup, lst))
Producción:

3

  Enfoque n.º 2: Usando el módulo Counter From Python Collections, importe el contador para resolver el problema dado. Un contador es un contenedor que realiza un seguimiento de cuántas veces se agregan valores equivalentes. Habiendo guardado el resultado en ‘recuentos’, usamos un bucle for y contamos cuántas veces aparece cada elemento de la lista en ‘recuentos’ y lo sumamos para obtener el resultado final. 

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
from collections import Counter
 
def countOccurrence(tup, lst):
    counts = Counter(tup)
    return sum(counts[i] for i in lst)
     
# Driver Code
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
print(countOccurrence(tup, lst))
Producción:

3

  Enfoque n.º 3: uso de conjuntos Otro método para resolver el problema dado es usar una estructura de datos establecida. Simplemente convierta la lista dada en un conjunto, que elimina todos los duplicados. Y ahora, para cada elemento de la lista, cuente su aparición en tuplas y súmelos. 

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
 
def countOccurrence(tup, lst):
    lst = set(lst)
    return sum(1 for x in tup if x in lst)
     
# Driver Code
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
print(countOccurrence(tup, lst))
Producción:

3

  Enfoque n.º 4: usar el diccionario de Python Obtenga cada elemento de la tupla y su frecuencia como par clave:valor en el diccionario de Python, luego use un bucle for, para cada elemento de la lista, cuente su aparición en la tupla y súmelos. 

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
 
def countOccurrence(tup, lst):
    dct = {}
    for i in tup:
        if not dct.get(i):
            dct[i] = 0
        dct[i] += 1
    return sum(dct.get(i, 0) for i in lst)
     
# Driver Code
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
print(countOccurrence(tup, lst))
Producción:

3

  Enfoque #5: Python numpy.in1d() Python numpy nos da un método directo para encontrar la solución para el problema dado, y es numpy.in1d(). Este método prueba si cada elemento de una array 1-D también está presente en una segunda array. Dado que list también es una array 1-D, este método se puede aplicar aquí. 

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
import numpy as np
 
def countOccurrence(tup, lst):
    return np.in1d(tup, lst).sum()
     
# Driver Code
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
print(countOccurrence(tup, lst))
Producción:

3

Enfoque #6: Usar los métodos list() y count()

Python3

# Python3 Program to count occurrence
# of all elements of list in a tuple
 
tup = ('a', 'a', 'c', 'b', 'd')
lst = ['a', 'b']
x=list(tup)
c=0
for i in lst:
    c+=x.count(i)
print(c)
Producción

3

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal 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 *