Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flatten a list in python

Tags:

python

I have a list like this:

[[(video1,4)], [(video2,5),(video3,8)], [(video1,5)], [(video5, 7), (video6,9)]...]

each item in this list may contain a single data pair, or a tuple, I want to change this list into

[(video1,4),(video2,5),(video3,8),(video1,5),(video5,7),(video6,9)...]

then do this:

for item in list:
    reqs = reqs + item[1]
    b.append(item[0])
c = set(b)

I don't know how to change the list structure, or how to do the same calculation based on the original list?

like image 634
manxing Avatar asked Apr 12 '12 15:04

manxing


2 Answers

If you just want to flatten the list, just use itertools.chain.from_iterable: http://docs.python.org/library/itertools.html#itertools.chain.from_iterable

like image 57
Marcin Avatar answered Oct 06 '22 00:10

Marcin


To flatten one level, you can use itertools.chain.from_iterable():

flattened_list = itertools.chain.from_iterable(my_list)
like image 37
Sven Marnach Avatar answered Oct 05 '22 23:10

Sven Marnach