我有([(Double,Double)],[(Double,Double)])
类型的列表。 example list = ([(1.0,1.0), (2.0,1.0), (1.0,1.0), (1.0,3.0)],[(1.0,4.0), (1.0,5.0), (1.0,1.0), (1.0,2.0), (1.0,3.0), (1.0,4.0), (1.0,5.0)])
如何在第四个元组(1.0,3.0)之后访问所有数据。我已经尝试过尾部功能,但似乎没有用。感谢。
答案 0 :(得分:4)
嗯,首先,你的列表不是一个列表,而是一个元组:)
type MyData = (MyList, MyList)
type MyList = [MyListElem]
type MyListElem = (Double, Double)
现在,访问第二个列表只是snd
。
snd :: (a,b) -> b
所以在你的情况下:
snd :: MyData -> MyList
或者,使用Lens
,您可以直接使用镜头:
list ^. _2
答案 1 :(得分:1)
这不是一个列表,而是一个列表元组。事实上,元组列表的元组。
要获取元组的第二部分,请使用snd
命令:
from srv3 import api
from waitress import serve
serve(api, host='127.0.0.1', port=5555) # it is the same if i use serve(srv3)
这会产生:
snd ([(1.0,1.0), (2.0,1.0), (1.0,1.0), (1.0,3.0)],[(1.0,4.0), (1.0,5.0), (1.0,1.0), (1.0,2.0), (1.0,3.0), (1.0,4.0), (1.0,5.0)])
从此处开始,您可以使用[(1.0,4.0),(1.0,5.0),(1.0,1.0),(1.0,2.0),(1.0,3.0),(1.0,4.0),(1.0,5.0)]
或!!
运算符继续获取第二个列表的部分内容。
为了完整性,可以使用fst
命令获取元组的第一部分。