python搜索最高值索引的索引

2024-09-30 20:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从binance的每日kline数据中找到最高的每日高点。我能够用这段代码API调用列表列表

client.get_historical_klines('maticbtc', Client.KLINE_INTERVAL_1DAY, "2 days ago UTC")

输出是以“开盘”“高”“低”“收盘”“成交量”格式列出的每日历史价格

[[1599264000000,
  '0.00000185',
  '0.00000192',
  '0.00000171',
  '0.00000177',
  '208963036.00000000',
  1599350399999,
  '377.04825679',
  14595,
  '82785887.00000000',
  '150.17277108',
  '0'],
 [1599350400000,
  '0.00000177',
  '0.00000185',
  '0.00000170',
  '0.00000182',
  '114643846.00000000',
  1599436799999,
  '204.99814224',
  9620,
  '55503278.00000000',
  '99.62131279',
  '0']]

我想在此列表中找到最高的“高”值。我目前能够使用以下代码引用单个每日“高”值:

client.get_historical_klines('maticbtc', Client.KLINE_INTERVAL_1DAY, "30 days ago UTC")[0][2]

输出:

0.00000192

谢谢你的建议


Tags: 代码client列表getbinanceagodaysutc
2条回答

I would like to find the highest 'high' value in this list.

您提供的示例不是列表,而是列表列表:

data30days = [
    [ ... ],
    [ ... ],
    ...
]

一般来说,“最高”值就是最大值。因此,在此类列表中查找最大值的代码为:

maxima30days = [ max(x) for x in data30days ]
totalMaximum = max(maxima30days)

但有一件事很奇怪:API的返回数据您不会收到数字值列表,而是混合类型的数据记录。幸运的是,二进制文件提供了您要查找的值的信息:它似乎是第三个值。(请参阅:https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#klinecandlestick-data)我不清楚为什么将此值作为字符串返回

因此,您的代码是:

maxima30days = [ float(x[2]) for x in data30days ]
totalMaximum = max(maxima30days)

一个小细节:下次你提问时,请提供你正在使用的模块的信息。在其他情况下,此信息可能非常重要!(幸好这里不是。)

请记住,我无法测试上面的代码,因为很遗憾,您没有提供一个我可以构建的工作示例。因此,请自己测试一下。如果您遇到任何错误,请随时在我的回答中添加评论,如果有任何进一步的问题,我将尝试解决

假设您在名为values的变量中有如上所述的数据

>>> values
[[1599264000000, '0.00000185', '0.00000192', '0.00000171', '0.00000177', '208963036.00000000', 1599350399999, '377.04825679', 14595, '82785887.00000000', '150.17277108', '0'], [1599350400000, '0.00000177', '0.00000185', '0.00000170', '0.00000182', '114643846.00000000', 1599436799999, '204.99814224', 9620, '55503278.00000000', '99.62131279', '0']]

如果需要values的每个子列表中第三个元素的最大值(由于不想进行字符串比较而转换为float),可以执行以下操作,例如:

>>> max(float(lst[2]) for lst in values)
1.92e-06

相关问题 更多 >