Se supone que el código toma un montón de información del usuario y la pone en una lista y luego muestra cuántos duplicados tiene cada elemento. P.ej. digamos que el usuario ingresa a, b, a, c, c Quiero que mi salida sea así:

a: **   

b: *

c: **

Cada '*' representa un duplicado. mi código me da esto: {a: 2, b: 1, c: 2}

from collections import Counter
reports = 0
graph1 = []
print("Enter in this format: # of reports, StartDate, EndDate. E.g. 5 20200401 20200403")
nor, start, end = input().split()
nor = int(nor)
print("Enter in this format: LabID, Date, # of cases. E.g. IWK 20200401 1")
while reports < nor:
   place, date, noc = input().split()
   graph1.append(int(date))
reports = reports + 1
graph1.sort()
a = dict(Counter(graph1))
print(a)

Intenté hacer esto: print (* a, sep = '\ n') esto hace que las cosas en la lista salgan verticalmente pero no generan el contador y hay alguna manera de cambiar el 2, 1, 2 en '* '

0
UmbraLupus 29 ago. 2020 a las 10:25

1 respuesta

La mejor respuesta

Lo recogeré de tu resultado, es decir, {a: 2, b: 1, c: 2}. Puede simplemente iterar a través de su diccionario de esta manera:

x = {'a': 2, 'b': 1, 'c': 2}
for k,j in x.items():
    print(k,':',j*'*', '\n')

La declaración de impresión imprime k la clave del diccionario, dos puntos (:) y el producto (*) de j (el valor correspondiente a la clave), la cadena '*' y '\n' (nueva línea)

Resultado

a : **

b : *

c : **
0
Seyi Daniel 29 ago. 2020 a las 08:09