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
  • 11,346
  • 7
  • 54
  • 108
Chris H
  • 271
  • 1
  • 6
  • 19

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
  • 11,346
  • 7
  • 54
  • 108
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,988
  • 2
  • 12
  • 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
  • 4,654
  • 1
  • 19
  • 35