我正在努力将函数的输出转换为我喜欢的格式(列表对于我来说是最简单的(我认为))。任何帮助将不胜感激。
我有什么
def adf_filter():
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
print(str(row.Index))
adf_filter()
返回类似的内容:
ETH_LTC DASH_XMR ETC_NXT XMR_BTC ETC_XRP DASH_LSK DASH_BTC DASH_LTC DOGE_NXT
我尝试过的事情:
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()
返回[&#39; ETH_LTC&#39;],即仅返回第一项。
有没有办法让它将所有项目作为列表返回?即,[&#39; ETC_LTC&#39;,&#39; DASH_XMR&#39;等]
我已经找到了一些java和类似的答案,但对于我无法弄清楚的python并不完全相同。提前谢谢。
答案 0 :(得分:0)
使用列表理解:
def adf_filter():
return [str(row.Index) for row in adfstats.itertuples() if float(row.adf) <= float(row.critvalues['10%'])]
PD:我还没有测试过它,但它应该可以运行
现在,针对您的具体问题,当它应该出去时,您在for内部有return语句:
def adf_filter():
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
adfpass.append(str(row.Index))
return adfpass
答案 1 :(得分:0)
你得到了所有合适的作品,但顺序并不正确:
def adf_filter():
adfpass = []
for row in adfstats.itertuples():
if float(row.adf) <= float(row.critvalues['10%']):
adfpass.append(str(row.Index))
return adfpass
没有任何关于这种安排的信息是Python特有的,它只是一般编程。