Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/05/2009, 09:37
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Como contar número de apariciones

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.