Чистый способ объединить список списков в словарь?

#python #dictionary #nested-lists

#python #словарь #вложенные списки

Вопрос:

У меня есть два списка:

 ind_vars_unique_list = [['R1'], ['Samoan', 'English'], ['Rural', 'Urban']]
ind_vars = ['Round', 'PrefLang', 'Rural']
  

Я хочу создать словарь, который выглядит как:

 {'R1': 'Round', 'Samoan':'PrefLang', 'English':'PrefLang', 'Rural':'Rural', 'Urban':'Rural'}
  

Я могу получить решение, используя подход к пониманию словаря:

 {ind_vars_unique_list[i][j]:ind_vars[i] for i in range(len(ind_vars)) for j in range(len(ind_vars_unique_list[i]))}
  

Но мне интересно, есть ли более чистый или более питонический способ сделать это, может быть, с помощью dict и zip?

Ответ №1:

Правильно, zip это путь:

 >>> {x: v for k, v in zip(ind_vars_unique_list, ind_vars) for x in k}
{'R1': 'Round', 'Samoan': 'PrefLang', 'English': 'PrefLang', 'Rural': 'Rural', 'Urban': 'Rural'}