J'ai le code suivant: qui fonctionne bien comme w dans ce cas est int. p> mais plutôt je veux remplacer w par la liste a. Il donne une sortie maladroite- de sorte qu'il est incorrect. P> Comment utiliser plusieurs liste par plage pour obtenir la valeur correcte. Apprécierait toute aide. p> p>
3 Réponses :
IIUC Vous pouvez utiliser une compréhension imbriquée de la liste. Utilisation par exemple: si je suggère d'utiliser NUMPY pour ceci: p> import numpy as np
a = np.array([34,567,87])
w = np.copy(a)
(1 / (1 + w)) ** np.arange(1,6)[:,None]
array([[2.85714286e-02, 1.76056338e-03, 1.13636364e-02],
[8.16326531e-04, 3.09958342e-06, 1.29132231e-04],
[2.33236152e-05, 5.45701306e-09, 1.46741172e-06],
[6.66389005e-07, 9.60741735e-12, 1.66751332e-08],
[1.90396858e-08, 1.69144672e-14, 1.89490150e-10]])
Vous pouvez utiliser des opérateurs d'éléments-wise (ici avec NUMPY):
[ numpy.divide(1,numpy.add(1,a)) ** i for i in range (1,6)]
Vous pouvez essayer ceci:
a=[34,567,87] w=67 [ (1 / (1 + w)) ** i for w in a for i in range (1,6)]
Par Sortie maladroite i> Vous voulez dire exception? Qu'est-ce que vous essayez de faire exactement? Quelle est l'attente de production?
Je veux multiplier la liste des valeurs par plage
Veuillez clarifier votre sortie souhaitée. Aucun des
1 + code>,
1 / code> ou ** 1 code> est bien défini dans Python. Qu'entendez-vous par «Plusieurs liste par plage» ou «Multiplier la liste des valeurs par plage»? Ce sont des choses différentes et différent de ce que votre code fait pour le moment.