Простите за запутанный заголовок, но я не смог найти более элегантный способ выразить проблему. Закрытый вопрос, который я мог бы найти , можно найти здесь , но он меня не совсем понял.
Предположим, несколько словарей различной длины:
dict_1 = {'A':4, 'C':5}
dict_2 = {'A':1, 'B':2, 'C':3}
dict_3 = {'B':6}
Общим знаменателем для этих словарей является то, что все они имеют общие ключи в этом списке:
my_keys= ['A','B','C']
, но в некоторых отсутствует один или несколько ключей.
Цель состоит в том, чтобы создатьсписок списков, где каждый элемент списка представляет собой список всех существующих значений в каждом словаре, или «Нет», где нет определенного ключа. Сами ключи, будучи идентичными во всех словарях, можно игнорировать.
Таким образом, в этом случае ожидаемый результат:
final_list =
[[4,"None",5],
[1,2,3],
["None",6,"None"]]
Я не уверен, как именно к нему подойти. Вы можете начать с каждого элемента в my_keys
и проверить его наличие по каждому ключу в каждом словаре;если у соответствующего dict есть ключ, значение этого ключа добавляется во временный список;в противном случае добавляется «None». После того, как все my_keys
будут повторены, временный список добавляется к окончательному списку, и цикл начинается снова.
По крайней мере, мне легче сказать, чем сделать. Я перепробовал немало вещей (которые я не буду постить, потому что они даже близко не подошли). Поэтому мне было интересно, если есть элегантный подход к проблеме.