вставка целого числа в каждый индекс списка python

#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) на список, так что на самом деле это не имеет значения.