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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | import sys
import random
import time
def buscar_coincidencias(palabras, cadena):
# creo una lista vacia
coincidencias = []
# recorro la lista de palabras
for palabra in palabras:
# pregunto si empieza con la cadena
if palabra.startswith(cadena):
# si empieza con esta cadena
# la agrego a la lista de coincidenas
coincidencias.append(palabra)
return coincidencias
def buscar_palabras_aleatoreas(palabras_diccionario):
# busco palabras de mas de 7
# caracteres cada una y obtengo
# solo los primeros 5
palabras = [p[:-2] for p in palabras_diccionario if len(p)>7]
palabras = [random.choice(palabras)[:5] for x in xrange(CANT)]
return palabras
if __name__ == "__main__":
# guardo el tiempo inicial del comienzo
# del programa
tiempo_inicial_total = time.time()
# creo una lista vacia
palabras_diccionario = []
# direccion del diccionario plano
# (posee una palabra por linea)
diccionario = "diccionariocs.txt"
# guardo el tiempo inicial de la carga
# del diccionario de palabras
tiempo_inicial_carga = time.time()
# recorro todo el archivo linea
# por linea
for linea in open(diccionario, "r"):
# cada linea al final tienen "\r\t"
# asique elimino esos caracteres
linea = linea[:-2]
# agrego la palabra a la lista de
# palabras
palabras_diccionario.append(linea)
# hago la resta entre el tiempo actual y
# el inicial antes de empezar la carga
print "En cargar: %.2f seg" % (time.time() - tiempo_inicial_carga)
# controlo que el usuario halla pasado
# la cadena a buscar, de lo contrario
# hago una busqueda aleatorea
if len(sys.argv) == 2:
# obtengo la cadena de busqueda
cadenas = [sys.argv[1]]
# seteo la cantidad de cadenas
# a buscar de forma aleatoria
CANT = 1
else:
# seteo la cantidad de cadenas
# a buscar de forma aleatoria
CANT = 50
cadenas = buscar_palabras_aleatoreas(palabras_diccionario)
print "Cantidad de palabras a buscar:", CANT
# guardo el tiempo inicial de
# en la busqueda de cada una de
# las palabras obtenidas
# aleatoriamente
tiempo_inicial_busqueda = time.time()
for cadena in cadenas:
buscar_coincidencias(palabras_diccionario, cadena)
print "Busq x palabra: %.2f mseg" % (1000 * (time.time()-tiempo_inicial_busqueda) / CANT)
|