Я пытаюсь заменить первую строку в следующем списке, используя последующий словарь, который сопоставляется со списком строк.
id_list = ['40000', '58962', '85496']
id_dict = {'10000': ['10001','10002','10003'], '40000': ['40001','40002','40003']}
Используя определенную функцию, например эту:
def find_replace_multi_ordered(string, dictionary):
# sort keys by length, in reverse order
for item in sorted(dictionary.keys(), key = len, reverse = True):
string = re.sub(item, dictionary[item], string)
return string
# Credit: http://pythoninthewyld.com/2018/03/12/dict-based-find-and-replace-deluxe/
В следующем примере для l oop:
for i in id_list:
if id_list[0][-4:] == '0000':
id_list.replace(find_replace_multi_ordered(i, id_dict))
else:
pass
print(id_list)
Это работает для преобразования словаря строки в строку, но приводит к ошибке TypeError для отображения строки в список.
Ошибка:
TypeError: unhashable type: 'list'
Желаемый результат будет следующим:
id_list = [['40001','40002','40003'], '58962', '85496']
Спасибо за любые рекомендации!