Python: Как вернуть все элементы списка в каждой итерации, кроме текущего элемента - PullRequest
0 голосов
/ 26 марта 2020

Моя цель слишком перебрать список и вернуть каждый элемент в списке, кроме текущего индекса для каждой итерации.

Например:

my_list = [1,2,3]

должно возвращаться:

>>>[2,3]

>>>[1,3]

>>>[1,2]

Я пытался создать для l oop, который создает копия списка, извлекает текущий индекс из копии и возвращает его.

my_list = [1,2,3]

for a in my_list:
    the_index = my_list.index(a)
    print(my_list.copy().pop(the_index))

, который возвращает

>>>1
>>>2
>>>3

Любые идеи о том, как правильно реализовать это?

Ответы [ 3 ]

5 голосов
/ 26 марта 2020

Следующее выглядит довольно просто:

lst = [1,2,3]
[lst[:i] + lst[i+1:] for i in range(len(lst))]
# [[2, 3], [1, 3], [1, 2]]

Или для циклических отпечатков:

for i in range(len(lst)):
    print(lst[:i] + lst[i+1:])
# [2, 3]
# [1, 3]
# [1, 2]
1 голос
/ 26 марта 2020

Приведенная выше проблема может быть решена с помощью этого:

my_list = [1,2,3]
for b in my_list:
    my_list.remove(b)
    print(my_list)
    my_list.append(b)
    my_list.sort()
1 голос
/ 26 марта 2020
my_list = [1,2,3]
for a in my_list:
    the_index = my_list[my_list.index(a)]
    z=my_list.copy()
    z.pop(the_index-1)
    print(z)

при печати функции copy () с помощью pop () он будет повторно запускать всплывающий элемент, поэтому разделите операцию copy и pop ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...