F#中有一个列表列表:
> wCost;;
val it : (float * float) list =
[(0.1, 13.61972782); (1.527722646, 1.123863823);
(1.850460992, 0.4853361402);
(1.923416366, 0.452707936); (1.939908012, 0.4510406634);
(1.943635968, 0.4509554673); (1.944478676, 0.4509511138)]
Run Code Online (Sandbox Code Playgroud)
我可以使用索引检索第一个列表:
> wCost.[0];;
val it : float * float = (0.1, 13.61972782)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将检索第一个列表的第二个元素,不幸的是,它与我预期的不一样
e.g. wCost[0][0] // it cannot retrieve the second element of first list.
13.61972782
Run Code Online (Sandbox Code Playgroud)
请随时评论如何检索列表元素.谢谢.
小智 7
实际上,您有一个元组列表,而不是列表列表.
这意味着当您第一次索引列表时,您将返回一个元组(即一个int * int)而不是一个列表.
要访问的元素,你这样使用fst或snd关键字来访问的元素:看https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/operators.fst%5B "T1," T2%5D-功能- %5Bfsharp%5D
在你的情况下,你会写,fst (wCost.[0])以获得你想要的.