la fonction renvoie des chaînes - comment les ajouter à une liste en tant qu'éléments séparés ?
J'ai du mal à obtenir la sortie d'une fonction au format que je souhaite (la liste serait la plus simple (je pense) pour travailler avec). Toute aide serait appréciée.
Ce que j'ai
def adf_filter():
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
print(str(row.Index))
adf_filter()
renvoie quelque chose comme :
ETH_LTC DASH_XMR ETC_NXT XMR_BTC ETC_XRP DASH_LSK DASH_BTC DASH_LTC DOGE_NXT
Ce que j'ai essayé :
adfpass = []
def adf_filter():
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
adfpass.append(str(row.Index))
return adfpass
adf_filter()
qui renvoie ['ETH_LTC'], c'est-à-dire uniquement le premier élément.
Existe-t-il un moyen de faire en sorte qu'il renvoie tous les éléments sous forme de liste ? c'est-à-dire ['ETC_LTC','DASH_XMR', etc.]
J'ai trouvé des réponses pour java et similaires, mais pas tout à fait les mêmes pour python que je n'ai pas pu comprendre. Merci d'avance.
Utiliser la compréhension de liste :
def adf_filter():
return [str(row.Index) for row in adfstats.itertuples() if float(row.adf) <= float(row.critvalues['10%'])]
PD : Je ne l'ai pas encore testé, mais ça devrait fonctionner
Maintenant, pour en venir à votre problème spécifique, vous avez l'instruction return à l'intérieur du for quand elle devrait sortir :
def adf_filter():
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
adfpass.append(str(row.Index))
return adfpass