0
votes

Attribuez des valeurs à la liste de la liste Python

Je suis Newbie en python et que mon problème est peut-être très simple.

J'ai créé une liste de 250 Zeros appelée x em>, x = npl.zeros (250) Code>, et j'ai une boucle où j'effectue des calculs, à chaque itération, je produis deux x par exemple dans la première itération dans la première itération X [0] et x [1] et ainsi de suite dans une liste appelée TEMP_X. c'est-à-dire, le premier temp_x a le x [0] et x [1] p>

Je souhaite enregistrer la sortie à la fin de chaque itération aux positions correspondantes du x. Par exemple, à la fin de la première itération, TEMP_X a deux valeurs, je veux les affecter aux premières positions de x. P>

Ce que je fais mal? P>

x[i, i+1] = x_temp


0 commentaires

3 Réponses :


1
votes

Cela devrait fonctionner juste bien x [i] = x [i + 1] = x_temp


2 commentaires

ValueError: régler un élément de tableau avec une séquence.


Apparemment numpy ne crée pas une liste, mais un objet numpy.ndarray avec np.zeros () appel, je n'ai pas travaillé beaucoup, mais cela a toujours travaillé pour moi dans Reply



1
votes

Comme mentionné dans la réponse de @ iamvisco, l'affectation chaînée fonctionnera.

Cependant, pour entrer dans la raison de votre code:

Lorsque vous tapez quelque chose comme x [i, I + 1] , Python comprend la valeur sur les crochets sous forme de tuple , et tente donc d'exécuter x [(i, i + 1)] , qui accède à l'élément à la ligne i et colonne i + 1 . Comme il n'y a pas d'élément de ce type ( x est un tableau 1D), il échoue avec l'erreur "trop ​​d'indices pour tableau".

Si vous voulez réellement accéder à deux (ou Plus) Éléments de cette façon, vos indices doivent être sous une forme d'un np.ndarray (une liste fonctionnerait aussi): xxx < / pré>


1 commentaires

Il n'a même pas besoin d'une matrice numpopique, juste une liste. x [[0, 1]] = 2 fonctionnera également.



0
votes

Je ne suis pas sûr que la réponse d'IAMVisco fera ce qui est requis, il sera plutôt défini à la fois les deux éléments de x à la liste X_TEMP.

Ce que je pense avoir besoin à la place est: p>

x[i], x[i+1] = x_temp


0 commentaires