Построить два списка из списка словарей в python

У меня есть список словарей с 2 ​​или более ключами, и я хочу построить 2 или более списков на основе этих ключей. Например:

dict_list = [{'key1':1, 'key2':2}, {'key1': 3, 'key2':4}, ... ] 

должен стать

 list1 = [1, 3, ...] list2 = [2, 4, ...] 

Чтобы создать единый список, есть элегантное решение:

 list1 = [item['key1'] for item in dict_list] 

Однако делать это дважды было бы неэффективно. Есть ли эффективный и элегантный или Pythonic способ сделать это? Другое решение, которое у меня есть, это что-то вроде:

 list1 = [] list2 = [] for item in dict_list: list1.append(item['key1']) list2.append(item['key2']) 

но, конечно, это кажется менее элегантным, чем какой-то метод понимания списка.

Я рекомендую сделать один словарь с такими ключами, как оригинальные словари и значения list s, содержащие каждый из соответствующих значений исходных словарей:

 >>> dict_list = [{'key1':1, 'key2':2}, {'key1': 3, 'key2':4}] >>> dct = {} >>> for d in dict_list: ... for k in d: ... dct.setdefault(k, []).append(d[k]) ... >>> dct {'key1': [1, 3], 'key2': [2, 4]}