elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / [SOLUCIONADO][PYTHON] Como ordenar(sort) un diccionario? en: 7 Agosto 2011, 18:26 pm
Hola!
Como dice el titulo, necesito ordenar("sortear"?) un diccionario.
Tengo un diccionario que contiene las letras del alfabeto en minuscula y sus valores ascii; el par "clave-valor" seria: (letra: CodAscii)

El diccionario lo defino de esta forma(para no anotar letra por letra :xD):

Código
  1. from string import letters
  2.  
  3. let = {}
  4. for x in letters[26:52]: #letters[26:52] es la parte que contiene las letras minusculas
  5.    let[x] = ord(x)
  6.  
  7. del letters

Cuando lo genero, me queda asi:
Código
  1. >>>let
  2. {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

Yo lo que quiero es que quede todo el diccionario ordenado(a,b,c,d,e,f....v,w,x,y,z) en vez de tenerlo asi(a,c,b,e,d....w,v,y,x,z)

___________________________________________________________________

He buscado en gugol, y encontre este codigo(lo encontre aqui)

Código
  1. def sortedDictValues1(adict):
  2.    items = adict.items()
  3.    items.sort()
  4.    return [value for key, value in items]
  5.  

y me genera una lista ordenada, hasta aca todo bien(la lista esta ordenada), pero luego si la convierto a diccionario(perdonen el nombre de las variables  :rolleyes:)
Código
  1. >>>l = sortedDictValues1(let)
  2. >>>for i in l:
  3. x[chr(i)] = i
  4.  
  5. >>>x
  6. {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}
  7.  

Alguien sabe porque pasa esto? y si hay alguna cosa que estoy haciendo mal, o es algo de python(uso Python 2.66 por las dudas)?

Saludos! y gracias por adelantado
2  Programación / Scripting / [Python]Crear variables..... en: 21 Mayo 2011, 22:07 pm
Hola!
Practicando un poco con Python(v 3.01) se me ocurrio algo, y no se como hacerlo :xD
Lo pongo como se me ocurrio en python(no funciona, pero es la forma mas clara de hacerlo :xD )

Código
  1. for x in range(0, 10):
  2.    y + x = 1
       

La idea con el ciclo for, es crear una variable y1, y2, y3(...),y10 y asignarles un valor a cada una.
No se si se podra hacer asi, o sino tendre que usar diccionarios  :silbar:
Saludos y gracias por adelantado!
3  Programación / .NET (C#, VB.NET, ASP) / [duda]Mostrar los numeros primos entre un intervalo en: 11 Mayo 2011, 04:22 am
Hola!
Tengo una funcion(hecha por mi) para averiguar si un numero es primo(es un poco "rustico" el metodo para averiguarlo, creo yo, pero funciona bien)
Y ahora la estoy usando en otro programa pero me da resultados "algo" extraños, y no entiendo porque :-\
este es el codigo de la funcion:

Código
  1. Function isPrime(ByVal num As Integer) As Boolean
  2.        Dim i As Integer
  3.        Dim auxTest As Boolean
  4.        Dim auxCriba(9) As Integer
  5.        auxCriba(0) = 2
  6.        auxCriba(1) = 3
  7.        auxCriba(2) = 5
  8.        auxCriba(3) = 7
  9.        auxCriba(4) = 11
  10.        auxCriba(5) = 13
  11.        auxCriba(6) = 17
  12.        auxCriba(7) = 19
  13.        auxCriba(8) = 23
  14.        auxCriba(9) = 29
  15.  
  16.        For i = 0 To auxCriba.Length - 1
  17.            If num Mod auxCriba(i) = 0 Then
  18.                isPrime = False
  19.            Else
  20.                auxTest = True
  21.  
  22.            End If
  23.        Next
  24.  
  25.        Return auxTest
  26.    End Function

y este el codigo para hallar los numeros en un intervalo dado(por el usuario):
Código
  1.    Sub Main()
  2.        Dim Min, Max, maxPrim As Integer
  3.        Dim i, j As Integer
  4.        Dim Primes() As Integer
  5.  
  6.        Console.Write("Introduce el maximo de primos a mostrar: ")
  7.        maxPrim = CInt(Console.ReadLine())
  8.        Console.Write("Introduce el minimo del intervalo: ")
  9.        Min = CInt(Console.ReadLine())
  10.        Console.Write("Introduce el maximo del intervalo: ")
  11.        Max = CInt(Console.ReadLine())
  12.        Console.WriteLine()
  13.        Console.WriteLine()
  14.        ReDim Primes(maxPrim-1)
  15.  
  16.        For i = 0 To maxPrim - 1 'este for es para almacenar el numero primo en el array Primes(), en la posicion "i"
  17.            For j = Min To Max - 1 'y este recorrre desde el valor minimo hasta el maximo y va comparando si el valor de "j" es un numero primo(deberia)
  18.                If isPrime(j) = True Then
  19.                    Primes(i) = j
  20.                End If
  21.            Next
  22.        Next
  23.  
  24.        Console.Write("Los numero primos entre " & Min & " y " & Max & " son: ")
  25.        For i = 0 To Primes.Length - 1
  26.            Console.Write(Primes(i) & " ")
  27.        Next
  28.        Console.ReadLine()
  29.    End Sub

Si pruebo(por ejemplo) Con:
-maxPrim = 10
-min = 1
-max = 20

Me devuelve:

Código:
19 19 19 19 19 19 19 19 19 19

y.... la verdad no veo porqué...
Por lo que puedo ver, siempre me devuelve el valor de la variable "max" -1, como esta en el 2do for, asi que creo que el error debe estar ahi
Alguien sabe cual es el problema(o al menos la linea)?
Saludos, y gracias a todos los que se tomaron la molestia de leer
pd: si alguna parte del codigo no se entiende o algo, digan y lo explico
pd2: Me olvide de aclarar, uso Visual Basic 2005 Express
4  Programación / .NET (C#, VB.NET, ASP) / "Ayuda" con Codigo(Pasar de Decimal a Binario) en: 8 Mayo 2011, 21:33 pm
Hola, este es mi primer post aqui(segundo con el de presentacion ;D ) y queria hacer una pregunta sobre un codigo que hice(es una funcion para pasar un numero de decimal a binario)
Esta es la funcion(la hice en base a esto: http://es.wikipedia.org/wiki/Sistema_binario):

Código
  1.    Function DecToBin(ByVal numDec As Integer) As String
  2.        Dim ret As String = ""
  3.        Dim arrRet() As Char
  4.  
  5.        While Not numDec = 1
  6.            ret = ret & CStr(numDec Mod 2)
  7.            numDec = numDec \ 2
  8.        End While
  9.  
  10.        ret = ret & "1"
  11.        ReDim arrRet(ret.Length())
  12.        arrRet = ret.ToCharArray
  13.        Array.Reverse(arrRet)
  14.        Return arrRet
  15.    End Function

Se que debe haber mil y una cosas que se pueden cambiar en el codigo, pero no se cuales son ;D
por cierto, tengo otra duda(sobre la misma funcion):
-Si yo llamo la funcion asi:
Código
  1.        Dim n As Integer
  2.        Console.WriteLine("Introduce un numero en Decimal para Pasarlo a Binario:")
  3.        n = CInt(Console.ReadLine())
No hay ningun problema, y me devuelve el resultado correctamente, pero si llamo la funcion asi:
Código
  1. Dim n As Integer
  2.        For n = 0 To 10
  3.            Console.WriteLine("El numero en Binario es: " & DecToBin(n))
  4.        Next
  5.  
  6.        Console.ReadLine()
No me devuelve ningun resultado y se queda "colgado" el visual basic...
Alguien sabe porque?
Uso Visual Basic Express 2005(.NET framework 2.0) y WinXP
Aclaro tambien que soy "novato" en la programacion, y que
Saludos, y muchas gracias por adelantado a los que se tomaron el tiempo de leer...
pd: Si el codigo es muy largo o si no lo postee bien pido disculpas...
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines