#python-3.x
#python-3.x
Вопрос:
mylist = [{'a': 'banana'}, {'a': 'orange'}, {'b': 'apple'}, {'c': 'grapes'}, {'b': 'banana'}, {'c': 'apple'}]
Я хочу изменить это на словарь с теми же ключами, чтобы иметь список значений примерно так:
mylist = [{'a': 'banana', 'orange'}, {'b': 'apple', 'banana'}, {'c': 'grape' 'apple'}]
Мой код:-
mydict_ = defaultdict(list)
for x in mylist:
for k, v in x.items():
mydict_[k].append(v)
mydict = dict(mydict_)
print(mydict)
Я получаю:-
mylist = [{'a': 'banana', 'banana'}, {'b': 'apple', 'apple'}, {'c': 'grapes', 'grapes'}]
Комментарии:
1. Ваш текущий код работает — кажется, он выдает именно то, что вы хотите. С какой именно проблемой вы столкнулись?
Ответ №1:
Сделайте это в своем цикле:
для x в mylist: для k,v в x.items(): if(k в mydict): mydict[k].добавьте (v) else: mydict[k]=[v]
Комментарии:
1. получение того же результата. mylist = [{‘a’: ‘banana’, ‘orange’}, {‘b’: ‘apple’, ‘banana’}, {‘c’: ‘grape’ ‘apple’}]
2. Разве это не то, что вы хотите
3. mylist = [{‘a’: ‘банан’, ‘апельсин’}, {‘b’: ‘яблоко’, ‘банан’}, {‘c’: ‘виноград’, ‘яблоко’}]
4. Я хочу только это, но не сработало, я получаю mylist = [{‘a’: ‘banana’, ‘banana’}, {‘b’: ‘apple’, ‘apple’}, {‘c’: ‘grapes’, ‘виноград’}]
Ответ №2:
from collections import defaultdict
new_dict = defaultdict(list)
for key_value_pair in mylist:
key, value = list(key_value_pair.items())[0]
new_dict[key].append(value)
ans_dict = dict(new_dict)
Комментарии:
1. получение того же результата. mylist = [{‘a’: ‘banana’, ‘orange’}, {‘b’: ‘apple’, ‘banana’}, {‘c’: ‘grape’ ‘apple’}]