Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/05/2009, 14:07
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Como contar número de apariciones

Cita:
Iniciado por razpeitia Ver Mensaje
Código python:
Ver original
  1. archivo = "prueba.txt"
  2. try:
  3.     f = open(archivo,"r")
  4. except IOError:
  5.     f.close()
  6.     exit()
  7.  
  8. contenido = f.readlines()
  9. f.close()
  10.  
  11. lista = []
  12. lista_final = []
  13.  
  14. for numero in contenido:
  15.    lista += numero.split()
  16. lista.sort()
  17. set_lista = set(lista)
  18. set_lista = list(set_lista)
  19. set_lista.sort()
  20. print "Valor:Ocurrencias"
  21. for numero in set_lista:
  22.     lista_final.append((lista.count(numero), numero))
  23.  
  24. lista_final.sort(reverse=True, key=lambda x:(int(x[1]), x[0]))
  25.  
  26. for tupla in lista_final:
  27.     print "%s %d"%(tupla[1], tupla[0])
Ahora solo funciona para enteros y flotantes xD, lanzara una excepcion si no lo es :-\
En
Código python:
Ver original
  1. lista_final.sort(reverse=True, key=lambda x:(int(x[1]), x[0]))
Intercambia el orden si los quieres ordenado por valores o por ocurrencia

Tenia que hacer un cast a int en la función, para que lo ordenara correctamente.
max('8', '47') me regresa 8, por que en un string compara carácter por carácter.
Muchisimas gracias razpeitia !!!