gpt4 book ai didi

F# 中的 Python 风格集合

转载 作者:太空狗 更新时间:2023-10-30 01:55:35 26 4
gpt4 key购买 nike

我正在尝试将我用于财务分析处理的一些 Python 代码重构为 F#,但我在复制一些我钟爱的 Python 数据类型时遇到了困难。例如在 Python 中,我可以愉快地声明一个这样的变量:

timeSeries = { "20110131":1.5, "20110228":1.5, "20110331":1.5, 
"20110431":1.5, "20110531":1.5 }

然后将它放在函数之间,但我不知道 F# 中的等价物。我试过这个:

let timeSeries = ( ["20110131":1.5], ["20110228":1.5], ["20110331":1.5], 
["20110431":1.5], ["20110531":1.5] )

但它当然失败了……我知道外面有人可能会大笑起来,但我对 F# 还很陌生,与 Python 相比,它感觉很局限。

我也熟悉 .NET,只是 F# 似乎介于脚本语言和 C# 等“合适的”语言之间,我还不太了解如何有效地使用它 - 一切都需要很长时间。

最佳答案

老实说,您在 Python 中的字典声明与您在 F# 中声明的内容看起来没有太大区别:

let timeSeries = dict [
"20110131", 1.5; // ',' is tuple delimiter and ';' is list delimiter
"20110228", 1.5;
"20110331", 1.5;
"20110431", 1.5;
"20110531", 1.5; // The last ';' is optional
]

因为 : 在 F# 中用于类型注释,所以您不能重新定义它。但是您可以创建自定义中缀运算符,使代码更具可读性,更接近您通常在 Python 中执行的操作:

let inline (=>) a b = a, b

let timeSeries = dict [
"20110131" => 1.5;
"20110228" => 1.5;
"20110331" => 1.5;
"20110431" => 1.5;
"20110531" => 1.5;
]

关于F# 中的 Python 风格集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com