2017-09-25 3 views
-2

Mon code est quelque chose comme ceci:Comment accélérer l'ajout en Python?

def fun -> list: 
    array = ... # creating of array 
    return array 

def fun2: 
    array2 = [] 
    # some code 
    for i in range(some_value): 
     array2.append(fun) 

Notez qu'il ne sait pas combien de valeurs fonctionnent fun retours dans chaque étape de l'algorithme de sorte qu'il est impossible d'attribuer array2 au début. Est-il possible de fixer cette performance?

+1

C'est une question très vaste, surtout sans un exemple concret. S'il vous plaît fournir plus d'informations ou un exemple d'entrée/sortie – Vinny

+1

J'apprécie votre peut essayer de créer un exemple minimal, mais ce n'est pas tout Python valide, et il reste votre question réelle complètement floue. Est-ce que 'fun' est appelé pour chaque itération de la boucle' for' avec un argument différent? –

+0

Que voulez-vous accélérer? Et si 'fun' peut contenir plusieurs éléments, ne voudriez-vous pas utiliser' extend (...) 'plutôt que' append (...) '? – holdenweb

Répondre

0

Si vous regardez le time complexity table de différentes opérations python sur des listes, vous pouvez voir que la vitesse d'ajout de k éléments à une liste est toujours la même quel que soit le nombre d'éléments à ajouter.