J'écris un script python qui fait diverses permutations de caractères. Finalement, le script va planter avec une erreur de mémoire insuffisante en fonction de la profondeur que je veux pour la permutation.Python, mémoire insuffisante lors de l'itération sur de très grands nombres
Je pensais initialement que la solution aurait vidé la liste et redémarré, mais de cette façon, j'obtiendrais une erreur d'index hors limites.
Ceci est mon courant mis en place:
for j in range(0, csetlen):
getJ = None
for i in range(0, char_set_len):
getJ = word_list[j] + char_set[i]
word_list.append(getJ)
csetlen = csetlen - j
del word_list[j-1:]
word_list.append(getJ)
j=0
Fondamentalement, csetlen
peut être un très grand nombre (de plus de 100.000.000). Bien sûr, je n'ai pas assez de RAM pour cela; donc j'essaie de savoir comment réduire la liste dans la boucle externe for
. Comment fait-on cela gracieusement?
L'erreur de mémoire concerne word_list
. Actuellement, je stocke des millions de permutations différentes; Je dois être capable de "recycler" certaines des anciennes valeurs de la liste. Comment fait-on cela sur une liste python?
@icktoofay: Doh! Oui je l'ai fait. : P –