как печатать список, пропускающий один элемент каждый раз в python без numpy?

данный

samplelist = [100,101,102,103,104,105,106,107,108,109] 

то я хочу вывод, как показано ниже:

 [100,[101,102,103,104,105,106,107,108,109]] [101,[100,102,103,104,105,106,107,108,109]] [102,[100,101,103,104,105,106,107,108,109]] 

Примечание: в первой строке выход 100 пропускается, т.е. list[0] , затем во втором list[1] строк list[1] пропускается.

Я попытался выскочить и отобразить, но в следующий раз он не покажет все элементы, которые выскочили. поэтому я попытался вставить их в конец цикла снова, но не повезло.

3 Solutions collect form web for “как печатать список, пропускающий один элемент каждый раз в python без numpy?”

простое понимание списка должно это сделать

 >>> samplelist = [100,101,102,103,104,105,106,107,108,109] >>> [[el for el in samplelist if el is not i] for i in samplelist] [[101, 102, 103, 104, 105, 106, 107, 108, 109], [100, 102, 103, 104, 105, 106, 107, 108, 109], [100, 101, 103, 104, 105, 106, 107, 108, 109], [100, 101, 102, 104, 105, 106, 107, 108, 109], [100, 101, 102, 103, 105, 106, 107, 108, 109], [100, 101, 102, 103, 104, 106, 107, 108, 109], [100, 101, 102, 103, 104, 105, 107, 108, 109], [100, 101, 102, 103, 104, 105, 106, 108, 109], [100, 101, 102, 103, 104, 105, 106, 107, 109], [100, 101, 102, 103, 104, 105, 106, 107, 108]] 

В основном он просматривает список, и для каждого элемента он выводит весь список, исключая текущий элемент.

В качестве альтернативы вы можете использовать выражение генератора

 >>> g = ([el for el in samplelist if el is not i] for i in samplelist) >>> for x in g: ... print(x) ... [101, 102, 103, 104, 105, 106, 107, 108, 109] [100, 102, 103, 104, 105, 106, 107, 108, 109] [100, 101, 103, 104, 105, 106, 107, 108, 109] [100, 101, 102, 104, 105, 106, 107, 108, 109] [100, 101, 102, 103, 105, 106, 107, 108, 109] [100, 101, 102, 103, 104, 106, 107, 108, 109] [100, 101, 102, 103, 104, 105, 107, 108, 109] [100, 101, 102, 103, 104, 105, 106, 108, 109] [100, 101, 102, 103, 104, 105, 106, 107, 109] [100, 101, 102, 103, 104, 105, 106, 107, 108] 

EDIT в соответствии с вашими новыми требованиями (т.е. должен быть включен пропущенный элемент):

 >>> g = ([i, [el for el in samplelist if el is not i]] for i in samplelist) >>> for x in g: ... print(x) ... [100, [101, 102, 103, 104, 105, 106, 107, 108, 109]] [101, [100, 102, 103, 104, 105, 106, 107, 108, 109]] [102, [100, 101, 103, 104, 105, 106, 107, 108, 109]] [103, [100, 101, 102, 104, 105, 106, 107, 108, 109]] [104, [100, 101, 102, 103, 105, 106, 107, 108, 109]] [105, [100, 101, 102, 103, 104, 106, 107, 108, 109]] [106, [100, 101, 102, 103, 104, 105, 107, 108, 109]] [107, [100, 101, 102, 103, 104, 105, 106, 108, 109]] [108, [100, 101, 102, 103, 104, 105, 106, 107, 109]] [109, [100, 101, 102, 103, 104, 105, 106, 107, 108]] 

используйте itertools.combinations() :

 import itertools a = [100,101,102,103,104,105,106,107,108,109] list(itertools.combinations(a, len(a)-1))[::-1] 

Вы можете использовать простой срез в понимании списка:

 >>> [samplelist[:i]+samplelist[i+1:] for i,_ in enumerate(samplelist)] [[101, 102, 103, 104, 105, 106, 107, 108, 109], [100, 102, 103, 104, 105, 106, 107, 108, 109], [100, 101, 103, 104, 105, 106, 107, 108, 109], [100, 101, 102, 104, 105, 106, 107, 108, 109], [100, 101, 102, 103, 105, 106, 107, 108, 109], [100, 101, 102, 103, 104, 106, 107, 108, 109], [100, 101, 102, 103, 104, 105, 107, 108, 109], [100, 101, 102, 103, 104, 105, 106, 108, 109], [100, 101, 102, 103, 104, 105, 106, 107, 109], [100, 101, 102, 103, 104, 105, 106, 107, 108]] 

Если вы хотите захватить пропущенный элемент:

 >>> [[samplelist[i],samplelist[:i]+samplelist[i+1:]] for i,_ in enumerate(samplelist)] [[100, [101, 102, 103, 104, 105, 106, 107, 108, 109]], [101, [100, 102, 103, 104, 105, 106, 107, 108, 109]], [102, [100, 101, 103, 104, 105, 106, 107, 108, 109]], [103, [100, 101, 102, 104, 105, 106, 107, 108, 109]], [104, [100, 101, 102, 103, 105, 106, 107, 108, 109]], [105, [100, 101, 102, 103, 104, 106, 107, 108, 109]], [106, [100, 101, 102, 103, 104, 105, 107, 108, 109]], [107, [100, 101, 102, 103, 104, 105, 106, 108, 109]], [108, [100, 101, 102, 103, 104, 105, 106, 107, 109]], [109, [100, 101, 102, 103, 104, 105, 106, 107, 108]]] 
  • Копировать или просмотреть субармы numpy с использованием булевой индексации
  • Применение SVD мгновенно вызывает ошибку памяти?
  • Невозможно понять построение границы решения в SVM и LR
  • Можно ли создать матрицу размером 1 миллион x 1 миллион, используя numpy?
  • Преобразование pandas dataframe в массив numpy, сохранение индекса
  • Использование функции roll_apply с функцией, которая требует 2 аргумента в Pandas
  • Подавление научной нотации в пандах?
  • Как выбрать окно из массива numpy с периодическими граничными условиями?
  •  
    Interesting Posts for Van-Lav

    scikit-learn, добавлять функции к векторизованному набору документов

    Можно ли использовать bpython в качестве полного отладчика?

    изменение диапазона x по умолчанию в гистограмме matplotlib

    Пример реального мира о том, как использовать свойство свойства в python?

    Как найти повторяющиеся слова в строке с помощью панд?

    Каков наилучший способ справиться с суффиксом «_d» для расширений C при использовании отладочной сборки?

    Где я должен разместить одноразовую операцию в рамках Django?

    Как включить один позиционный аргумент в взаимоисключающую группу argparse?

    Как отсортировать Временной ряд Pandas, содержащий значения в 12-часовом формате (AM / PM)

    Невозможно активировать виртуальную среду в Miniconda

    Python: Как совместить вложенные круглые скобки с регулярным выражением?

    Встроенная функция Python «компилируется». Для чего его используют?

    Отладка с аргументами терминала PyCharm

    Как указать ширину линии в дендрограммах кластерной карты Seaborn

    Переводы ярлыков полей Django

    Python - лучший язык программирования в мире.