I have a parser function which returns iter(iter(tree)). 
parsedSentence = parser.raw_parse_sents([sentence],False)  
How can I convert the parsedSentence type to list(tree) and access 1st element of that list.
I've already tried list(parser.raw_parse_sents([sentence],False)) but it's not converting the result to list. 
Edited:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = t1.treepositions()
Here it throws an error:
'listiterator' object has no attribute 'treepositions'
Thank You.
It doesn't make any difference that how many time you used iter on an iterable object you can simply convert it to list by calling list function. 
>>> l =[6, 3, 5, 1, 4, 2]
>>> list(iter(iter(iter(iter(l)))))
[6, 3, 5, 1, 4, 2]
But if you just want to get the fist item you don't need to use list function you can simply use next method on an iterator or next() built-in function (in python 3.X you can just use built-in function next()) to get the forst item :
>>> iter(iter(l)).next()
6
>>> iter(iter(iter(l))).next()
6
>>> iter(iter(iter(iter(l)))).next()
6
Now about your problem if you didn't get a list after calling list after calling it surely it's not an iterator it would be another object type that you need to get its items based on how its  __getitem__ method has been implemented.
Based on your edit t1 is a list iterator object and doesn't has attribute treepositions you can loop over it's items and then call those treepositions attribute:
s1 = parsedSentence[0]
t1 = Tree.convert(s1)
positions = [item.treepositions() for item in t1]
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With