I have the following code:
items = ["one", "two", "three"]
for i in range(0, len(items)):
for index, element in enumerate(items):
if index != i:
# do something with element
基本上,我想要去掉每个元素一次并迭代剩下的部分。所以对于我上面列出的列表,我想要以下迭代:
- "two", "three"
- "one", "three"
- "one", "two"
编辑:我没有说明这一点,但列表的大小不一定为3。它可以是任何大小。
编辑2:似乎还有一个误解:如果我有一个N的列表,那么我希望得到N个大小为N-1的列表,每个列表都缺少原始列表中的一个元素。
编辑3:一个有4个项目的列表应该给出这个结果:
- 1, 2, 3
- 1, 3, 4
- 1, 2, 4
- 2, 3, 4
itertools
和生成器推导式,但最终可能还是没有比你最初的代码更好的提议。 - Jason Orendorffxrange(len(items))
。 - Tobu