![]() |
python3 List to array or string to extract data - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: python3 List to array or string to extract data (/thread-18710.html) |
python3 List to array or string to extract data - batchenr - May-28-2019 Hey, i am using python 3 and new to python. i have this list : ([[[32.098659, 34.826334], [32.099361, 34.830506], [32.097026, 34.831574], [32.095502, 34.827881]]],)This is how i see the value of the var poly using print and i made sure its of type list. and the numbers represent X and Y on a map. now i need to split \ make this list like an array to fit this logic : p1x,p1y = poly[0] for i in range(n+1): p2x,p2y = poly[i % n] if y > min(p1y,p2y): if y <= max(p1y,p2y): if x <= max(p1x,p2x): if p1y != p2y: xinters = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x if p1x == p2x or x <= xinters: inside = not inside p1x,p1y = p2x,p2y return insidei need somhow to split poly to fit like an array with poly[0] so it can fit this function but because its a list i get poly[0] as one big string and havent find a way to split it. i tryied to use : dataset_list = ''.join(str(poly)) poly = dataset_list.split(']')it didnt work. and i get this error p1x,p1y = poly[0] ValueError: too many values to unpack (expected 2) please help me split this list. thanks! RE: python3 List to array or string to extract data - buran - May-28-2019 what you have is tuple with one element list, that list has one element - list. Now that list has many elements - lists >>> foo = ([[[32.098659, 34.826334], [32.099361, 34.830506], [32.097026, 34.831574], [32.095502, 34.827881]]],) >>> type(foo) <class 'tuple'> >>> foo[0] [[[32.098659, 34.826334], [32.099361, 34.830506], [32.097026, 34.831574], [32.095502, 34.827881]]] >>> type(foo[0]) <class 'list'> >>> foo[0][0] [[32.098659, 34.826334], [32.099361, 34.830506], [32.097026, 34.831574], [32.095502, 34.827881]] >>> type(foo[0][0]) <class 'list'> >>> foo[0][0][0] [32.098659, 34.826334] >>> type(foo[0][0][0]) <class 'list'> >>> foo[0][0][0][0] 32.098659 >>> RE: python3 List to array or string to extract data - perfringo - May-28-2019 Just to make things clear: >>> poly = ([[[32.098659, 34.826334], [32.099361, 34.830506], [32.097026, 34.831574], [32.095502, 34.827881]]],) >>> type(poly) tuple >>> len(poly) 1 >>> type(poly[0]) list >>> len(poly[0]) 1 >>> type(poly[0][0]) list >>> len(poly[0][0]) 4 RE: python3 List to array or string to extract data - batchenr - May-28-2019 (May-28-2019, 12:39 PM)buran Wrote: what you have is tuple with one element list, that list has one element - list. Now that list has many elements - lists Hey, Thanks for the quick answers, it doesn't work for me from the code, if i do python3 on terminal and doing your commandes it does work but, from the code it doesn't. maybe its because i forgot to mention i do : poly = list(poly)in another section before that one ? this is what i get when i run it through test.py code: print("POLYYY", poly[0][0][0]) print(type(poly)) [1], INF, POLYYY (32.098659,) [1], INF, <class 'list'>Thanks RE: python3 List to array or string to extract data - buran - May-28-2019 show us full code snippet. it looks like you do a lot of unnecessary conversions... best would be to limit the code snippet to 5-10 lines of code that reproduce the problem. |