#python #python-3.x
#python #python-3.x
Вопрос:
Как бы я вставил целое число «5» в каждый индекс следующего списка по элементу в новом списке для каждого индекса
У меня есть список
['2', '6', '8']
и хотел бы вставить ‘5’ следующим образом:
['5', '2', '6', '8']
['2', '5', '6', '8']
['2', '6', '5', '8']
['2', '6', '8', '5']
Комментарии:
1. Целое число
5
или строка'5'
?2. @schwobaseggl о, хорошо, удаляю обман.
Ответ №1:
Вы могли бы использовать понимание списка, используя фрагменты списка для каждого индекса и из него:
>>> lst = ['2', '6', '8']
>>> [lst[:i] ["5"] lst[i:] for i in range(len(lst) 1)]
[['5', '2', '6', '8'],
['2', '5', '6', '8'],
['2', '6', '5', '8'],
['2', '6', '8', '5']]
Или использование *
-распаковка, тот же результат : [[*lst[:i], "5", *lst[i:]] for ...]
. Обе версии создают кучу временных фрагментов списка. Альтернативой было бы использовать цикл, сделать копию списка, а затем вызвать insert
; оба подхода должны иметь ~ O (2n) на список, так что на самом деле это не имеет значения.