0

I have an array a as follow : [[(0,0),(2,0)],[(1,1)], [(3,8)]]

So now I want to convert it like this: [(0,0),(2,0),(1,1), (3,8)]

How may I do that?

I had tried bellow code and successed, but I need some ideas better and faster.

nresult = []
for i in range(len(result)):
    arr = result[i]
    for j in range(len(arr)):
        nresult.append(arr[j])

Can someone help me?

Thanks!

Sreeram TP
  • 10,221
  • 6
  • 43
  • 92
Chris H
  • 251
  • 1
  • 5
  • 18

3 Answers3

1

You can use reduce from functools like this

from functools import reduce

a = [[(0,0),(2,0)],[(1,1)], [(3,8)]]
res = reduce(lambda x,y: x+y,a)

print(res) # [(0, 0), (2, 0), (1, 1), (3, 8)]
Sreeram TP
  • 10,221
  • 6
  • 43
  • 92
1

If your nested-deep is certain, you can use chain from itertools package

from itertools import chain

data = [[(0,0),(2,0)],[(1,1)], [(3,8)]]

result = list(chain(*data))
Rancho
  • 1,648
  • 2
  • 10
  • 12
0

You can use list comprehensions -

nested = [[(0,0),(2,0)],[(1,1)], [(3,8)]]
un_nested = [inside_element for element in nested for inside_element in element]
# Returns - [(0, 0), (2, 0), (1, 1), (3, 8)]
Mortz
  • 3,319
  • 17
  • 32