首页 > 解决方案 > Python:如何在每次迭代中返回列表的所有元素,当前元素除外

问题描述

我的目标是遍历列表并返回列表中的每个元素,每次迭代的当前索引除外。

例如:

my_list = [1,2,3]

应该返回:

>>>[2,3]

>>>[1,3]

>>>[1,2]

我尝试创建一个 for 循环来创建列表的副本,从副本中弹出当前索引并返回它。

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

关于如何正确实施这一点的任何想法?

标签: python-3.xlistindexing

解决方案


以下看起来相当简单:

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]

推荐阅读