地图/集合理解

2024-03-28 13:49:43 发布

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

我在寻找类似于Python中dict/list/set理解的东西。在Python中,可以执行以下操作:

[x+2 for x in list if x > 10]

在F中

^{pr2}$

但在Python中,也可以执行以下操作:

{x+2 for x in list if x > 10}

生成集合,以及

{k: (v+10)/2 for k, v in list.items() if k > 5}

生成Dicts。在F#中,这类东西是否有等价的语法(无论是在功能上还是在整体整洁方面)?在


Tags: in功能forif语法itemsdictlist
2条回答

本质上F没有特殊的语法,但是可以使用数组或列表理解并将结果传递给提供给标准库的函数。在

let intSet = set [for x in list do if x > 10 yield x+2]


let intMap = dict [for (x, y) in list do if x > 10 yield (x,y+2)]

有一个set函数接受seq<_>,因此可以执行以下操作:

set [for x in list do if x > 10 yield x+2]

dict相同。相关文件如下:

sethttp://msdn.microsoft.com/en-us/library/ee353747.aspx
dicthttp://msdn.microsoft.com/en-us/library/ee353774.aspx

相关问题 更多 >