Операция распаковки:
In [1]: data = [(1,2),(40,2),(9,80)]
In [2]: zip(*data)
Out[2]: [(1, 40, 9), (2, 2, 80)]
Редактировать: Вы можете разложить полученный список по назначению:
In [3]: first_elements, second_elements = zip(*data)
А если вам действительно нужны списки в качестве результатов:
In [4]: first_elements, second_elements = map(list, zip(*data))
Чтобы лучше понять, почему это работает:
zip(*data)
эквивалентно
zip((1,2), (40,2), (9,80))
Два кортежа в списке результатов составлены из первых элементов аргументов zip () и из вторых элементов аргументов zip ().