Ха-ха, я не уверен, что вам когда-нибудь нужна такая сложная структура данных.Рассмотрите возможность рефакторинга вашего кода, чтобы облегчить понимание ваших структур данных.Читайте: объектно-ориентированное программирование, классы, принципы функционального программирования.
Вот ответ, если вы просто хотите сделать это для одного словаря:
data = {k:v[0] for (k,v) in data.items()}
Вот оно в действии:
>>> data = {'uid': ['restest'], 'mail': [''], 'givenName': ['Research'], 'cn': ['Research Test Account'], 'sn': ['Account']}
>>> data
{'mail': [''], 'sn': ['Account'], 'givenName': ['Research'], 'uid': ['restest'], 'cn': ['Research Test Account']}
>>> data = {k:v[0] for (k,v) in data.items()}
>>> data
{'mail': '', 'givenName': 'Research', 'cn': 'Research Test Account', 'sn': 'Account', 'uid': 'restest'}
Все, что вы делаете, это переназначаете свой словарь на первый элемент каждого списка.Если вы хотите пройтись по всем уровням своей структуры и сделать это, просто вложите вышеупомянутое в некоторые списки:
[[[{k:v[0] for (k,v) in change_dict.items()} for change_dict in list_of_dicts]
for list_of_dicts in list_of_lists]
for list_of_lists in mydata]
Не так уж плохо вкладывать так много списков, когда вы только делаетечто-то вроде «листового» элемента в ваших данных, но это будет очень грязно, если вы попытаетесь манипулировать вашими структурами данных на каждом уровне.Смотрите мой комментарий в начале.