Convert a list of tuples to a list of lists
You can use list comprehension:
>>> list_of_tuples = [(1, 2), (4, 5)]
>>> list_of_lists = [list(elem) for elem in list_of_tuples]
>>> list_of_lists
[[1, 2], [4, 5]]
While the list comprehension is a totally valid answer, as you are just changing type, it might be worth considering the alternative, the map()
built-in:
>>> list_of_tuples = [(1, 2), (4, 5)]
>>> map(list, list_of_tuples)
[[1, 2], [4, 5]]
The map()
built-in simply applies a callable to each element of the given iterable. This makes it good for this particular task. In general, list comprehensions are more readable and efficient (as to do anything complex with map()
you need lambda
), but where you want to simply change type, map()
can be very clear and quick.
Note that I'm using 2.x here, so we get a list. In 3.x you will get an iterable (which is lazy), if you want a list in 3.x, simply do list(map(...))
. If you are fine with an iterable for your uses, itertools.imap()
provides a lazy map()
in 2.x.