Python - Lista de tuplas (como contar las repeticiones de cada elemento de la tuplas)

 
Vista:

Lista de tuplas (como contar las repeticiones de cada elemento de la tuplas)

Publicado por Daniela Melian (1 intervención) el 31/01/2019 05:21:32
El ejercicio es el siguiente:
Dada una partida en forma de una lista de tuplas de la forma <personaje>,<movimiento>
y un numero k, imprimir por pantalla todos los movimientos notables de cada personaje y cuantas veces se usaron. Se dice que un movimiento es notable si el personaje lo utilizo mas de k veces durante la partida. Ejemplo:
>>> movimientos = [("Pikachu", "Impactrueno"), ("Charizard", "Lanzallamas"),
("Pikachu", "Ataque Rapido"), ("Charizard", "Lanzallamas")]
>>> imprimir_notables(movimientos, 1)
Charizard - Lanzallamas (2)

No sé ni cómo empezar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Lista de tuplas (como contar las repeticiones de cada elemento de la tuplas)

Publicado por tincopasan (1082 intervenciones) el 31/01/2019 10:34:44
es cuestión de la lógica que cada uno quiera implementar, por ejemplo:
1)primero que todo hay que crear una función imprimir_notables
2)se puede crear un diccionario con los bichos y sus movimientos
3)crear una lista con los movimientos y a partir de ahí un diccionario con las veces que se repiten
4)buscar la clave de acuerdo al valor de repetición
5)encontrada la clave ahora buscar el bicho que la usa(no tengo idea)
6)este ejercicio plantea variables que no explica y la función tiene un argumento innecesario(nunca la consultará)
7)no me gusta hacer tareas, pero estoy aburridisimo y me sirve distraerme unos minutos con un ejemplo orientativo, demás está decir que tiene errores, omisiones y cosas para simplificar, pero como dije es para orientar simplemente.
8)podrías esforzarte un poco y plantear aunque sea un seudocódigo.
9)saludos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#-*- coding: utf -8 -*-
from collections import Counter
movimientos = [("Pikachu", "Impactrueno"), ("Charizard", "Lanzallamas"),
               ("Pikachu", "Ataque Rapido"), ("Charizard", "Lanzallamas")]
 
def  imprimir_notables(valor= 0):
    if valor != 0:
        valor+=1
    personajes={}
    mueven=[]
    final=""
    for x in movimientos:
        bicho=x[0]
        movimiento=x[1]
        if bicho not in personajes:
            personajes[bicho]=[movimiento]
 
        else:
            personajes[bicho]+=[movimiento]
        mueven.append(movimiento)
    contador=Counter(mueven)
    try:
        buscado=list(contador.keys())[list(contador.values()).index(valor)]
        for bicho,movimiento in personajes.items():
            if buscado in movimiento:
                final= bicho
    except ValueError:
        print("Valor inexistente")
    return print("{} - {} ({})".format(final ,buscado,valor))
 
imprimir_notables(1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar