Создайте словарь для запоминания таких значений, как remember['foo'] = True
и повторяйте свой список. Для каждого элемента проверьте, если имя в remember
. Если имя не помнит, добавьте его к remember
. Если имя указано в remember
, используйте значение из remember
в качестве значения в bleh
.
data = [
{"name":'foo', "bleh":True},
{"name":"foo", "bleh":False},
{"name":"panda", "bleh": 'XXX'},
{"name":"panda", "bleh":'Hello'},
{"name":"panda", "bleh":'World'},
{"name":"foo", "bleh":'other'},
]
remember = dict()
for item in data:
if item['name'] not in remember:
remember[item['name']] = item['bleh']
else:
item['bleh'] = remember[item['name']]
print(data)
Он будет использовать значение с первого foo
для изменения bleh
во всех других foo
, а также будет использовать значение с первого pandas
для изменения bleh
во всех остальных pandas
.
Результат:
[
{'name': 'foo', 'bleh': True},
{'name': 'foo', 'bleh': True},
{'name': 'panda', 'bleh': 'XXX'},
{'name': 'panda', 'bleh': 'XXX'},
{'name': 'panda', 'bleh': 'XXX'},
{'name': 'foo', 'bleh': True}
]