#python #list
#python #Список
Вопрос:
У меня есть два списка list1 и list2 (указанные в коде), я должен вставить list2 таким образом, чтобы он отображался в следующем формате:
Код, который я возвращаю, является:
list1 = ["c","o",["m",["p","u",["t","e"],"o"],"g"],"r","a","m"]
list2 = ["r","p","r"]
for i in list1:
for j in i:
for k in list2:
if ord(k)<ord(j):
list1.insert(list1.index(j),k)
Кто-нибудь может помочь мне получить правильный код.
Ответ №1:
Вам нужно сначала найти самый внутренний список, а затем в конечном итоге добавить к нему свой список inner-most-list
:
list1 = ["c","o",["m",["p","u",["t","e"],"o"],"g"],"r","a","m"]
list2 = ["r","p","r"]
inner_most_list = list1
found = False
while not found:
for index, el in enumerate(inner_most_list):
print(index, el)
if isinstance(el, list):
inner_most_list = el
break
if index == len(inner_most_list)-1:
# Reached end of recursive-list possibilities
found = True
break
inner_most_list.extend(list2)
print(list1)
Вывод:
['c', 'o', ['m', ['p', 'u', ['t', 'e', 'r', 'p', 'r'], 'o'], 'g'], 'r', 'a', 'm'
Код является общим и должен работать и для других тестовых примеров.
Комментарии:
1. спасибо, вы это хорошо объяснили. 🙂
2. @JonardanCena Если вы нашли ответ полезным, пожалуйста, выберите лучший ответ, чтобы помочь другим в подобных ситуациях