Как добавить из словаря списка в список конкретные значения словаря
x = [{
'f': 'a',
'n': 'b',
'r': 'c'
},
{
'f': 'b',
'n': 'c',
'r': 'a'
},
{
'f': 'b',
'n': 'b',
'r': 'a'
}
]
m = []
def name2():
h = 0
for i in x:
if x[h]['n'] != x[h+1]['n']:
x[h]['n'].append(m)
h += 1
name2()
print(m)
я не могу добавить с помощью функции append можете сказать каким образом это можно сделать
Ответы (3 шт):
Автор решения: Dmitry
→ Ссылка
У словаря нет метода append. Запись можно сделать так
x[h]['n'] = m
Пример на данных:
x = [{'f': 'n', 'n': 'b', 'r': 'c'}, {'f': 'b', 'n': 'c', 'r': 'a'}, {'f': 'b', 'n': 'b', 'r': 'a'}]
# что лежит в нулевом x
print(x[0], type(x[0]))
# вывод
# {'f': 'n', 'n': 'b', 'r': 'c'} <class 'dict'>
# заменим какое нибудь значение, например по ключю f
x[0]["f"] = 10
# что теперь хранится в нулевом x
print(x[0], type(x[0]))
# вывод
# {'f': 10, 'n': 'b', 'r': 'c'} <class 'dict'>
Обращайте внимание на тот тип данных с которыми работаете. А методы всегда можно глянуть в оф документации.
Не стесняйтесь выводить необходимую информацию в консоль, так будет легче понимать, что происходит
Автор решения: GrAnd
→ Ссылка
Если задача состоит в том, чтобы сформировать список содержащий уникальные значения элементов 'n' каждого словаря списка x, то вот:
m = list(set((el['n'] for el in x)))
Автор решения: SergFSM
→ Ссылка
немного поправил ваш код, теперь он работает (вы это задумывали?):
def name2():
h = 0
for i in range(len(x)-1):
if x[h]['n'] != x[h+1]['n']:
m.append(x[h]['n'])
h += 1
name2()
print(m) # ['b', 'c']