0
votes

Plusieurs gammes par Python List de manière simple

J'ai le code suivant: xxx

qui fonctionne bien comme w dans ce cas est int.

mais plutôt je veux remplacer w par la liste a. Il donne une sortie maladroite- de sorte qu'il est incorrect.

Comment utiliser plusieurs liste par plage pour obtenir la valeur correcte. Apprécierait toute aide.


3 commentaires

Par Sortie maladroite 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 + , 1 / ou ** 1 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.


3 Réponses :


0
votes

IIUC Vous pouvez utiliser une compréhension imbriquée de la liste. Utilisation par exemple: xxx pré>

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]])


0 commentaires

0
votes

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)]


0 commentaires

0
votes

Vous pouvez essayer ceci:

a=[34,567,87]
w=67

[ (1 / (1 + w)) ** i for w in a for i in range (1,6)]


0 commentaires