Python Forum
python3 List to array or string to extract data
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
python3 List to array or string to extract data
#1
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 inside
i 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!
Reply
#2
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
>>>
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply
#3
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
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#4
(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
>>> 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
>>>

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
Reply
#5
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.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Help with to check an Input list data with a data read from an external source sacharyya 3 317 Mar-09-2024, 12:33 PM
Last Post: Pedroski55
  Python3 string slicing Luchano55 4 530 Feb-17-2024, 09:40 AM
Last Post: Pedroski55
  Is it possible to extract 1 or 2 bits of data from MS project files? cubangt 8 937 Feb-16-2024, 12:02 AM
Last Post: deanhystad
  extract substring from a string before a word !! evilcode1 3 491 Nov-08-2023, 12:18 AM
Last Post: evilcode1
  Why can't it extract the data from .txt well? Melcu54 3 644 Aug-20-2023, 10:07 PM
Last Post: deanhystad
Question Need help for a python script to extract information from a list of files lephunghien 6 1,032 Jun-12-2023, 05:40 PM
Last Post: snippsat
  extract only text strip byte array Pir8Radio 7 2,787 Nov-29-2022, 10:24 PM
Last Post: Pir8Radio
  Extract value from a list thesquid 2 810 Nov-29-2022, 01:54 PM
Last Post: thesquid
  python Extract sql data by combining below code. mg24 1 914 Oct-03-2022, 10:25 AM
Last Post: mg24
  SQL Alchemy help to extract sql data into csv files mg24 1 1,675 Sep-30-2022, 04:43 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020