До кучи вот ещё рекурсивная разбиралка, которая сама находит индексы элементов, которые нужно печатать. Ну и проверяет, какое слово так собирается:
def find_letter(lst, letter):
for i, item in enumerate(lst):
if item == letter:
return [i]
elif isinstance(item, list) or (isinstance(item, str) and len(item) > 1):
res = find_letter(item, letter)
if res:
return [i] + res
return []
def find_word(lst, word, path=''):
res = []
for letter in word:
res.append(find_letter(lst, letter))
result = f"{'+'.join('lst' + ''.join(f'[{y}]' for y in x) for x in res)}"
print(f'print({result})')
print(eval(result))
castle = [1, ["ce"], 543, "P", ["n", ["r"]], "i", [[["s"]]]]
find_word(castle, "Princess")
Вывод:
print(lst[3]+lst[4][1][0]+lst[5]+lst[4][0]+lst[1][0][0]+lst[1][0][1]+lst[6][0][0][0]+lst[6][0][0][0])
Princess