Я бы сделал это, используя понимание словаря в понимании списка.
Словарь постижение перестраивает словарь, но изменяет значение, если:
- ключ
key3
И
- первые 2 символа из строки являются цифрами
Переделка принимает правую часть ведущего пространства.
a_list = [{'key1': 'A picture 1', 'key2': 'location 1', 'key3': '20 title1'}, {'key1': 'A picture 2', 'key2': 'location 2', 'key3': '10 title2'}]
a_new_list = [{k:v.partition(" ")[2] if (k=="key3" and v[:2].isdigit()) else v for k,v in d.items()} for d in a_list]
print(a_new_list)
результат:
[{'key1': 'A picture 1', 'key2': 'location 1', 'key3': 'title1'}, {'key1': 'A picture 2', 'key2': 'location 2', 'key3': 'title2'}]
Примечание: Будет также удалить первые цифры, если есть больше чем 2 знака. Условие является широким и должно быть настроено на ваши нужды.
EDIT: предварительно Python 2.7 совместимый альтернативный (Dict постижений, когда не существовало):
a_new_list = [dict((k,v.partition(" ")[2] if (k=="key3" and v[:2].isdigit()) else v) for k,v in d.items()) for d in a_list]
Это прекрасно, что я искал. Благодарю. Я думал, что если мы сможем сделать это с повторением, но в любом случае я буду адаптироваться к моим потребностям. – Twilight0
Это работает в python 2.7.X, однако я получаю синтаксическую ошибку в python 2.6.X :( – Twilight0
, потому что определения dict были недоступны. Отредактировано для альтернативного решения, должно работать в порядке (дает те же результаты !!) –