Python 从列表列表中删除第一个元素,然后删除第一个和第二个元素

Python 从列表列表中删除第一个元素,然后删除第一个和第二个元素,python,python-3.x,list,Python,Python 3.x,List,我的目标是删除列表中的第一个元素,然后删除列表中的第一个和第二个元素等。因此,像这样输入的列表:[[1,1],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]]将返回这样的列表:[[1,2],[1,3],[2,3] 我尝试过很多方法,但没有一种效果很好像这样的方法怎么样: list1 = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]] list2 = [] keep_index = 1 incre

我的目标是删除列表中的第一个元素,然后删除列表中的第一个和第二个元素等。因此,像这样输入的列表:
[[1,1],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]]
将返回这样的列表:
[[1,2],[1,3],[2,3]

我尝试过很多方法,但没有一种效果很好

像这样的方法怎么样:

list1 = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]]
list2 = []

keep_index = 1
increment = 0
for i in range(len(list1)):
    if i == keep_index:
        list2.append(list1[i])
        increment += 2 if keep_index == 2 else 1
        keep_index += increment
print(list2)
正如@schwobasegll所评论的,这段代码可能就是您正在寻找的:

import itertools
itertools.combinations([1, 2, 3], 2) # combinations of 2 elements (without repeats)
根据您的描述,我认为f是您正在寻找的函数。以下是上述脚本的输出:

[[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]] -> [[1, 2], [1, 3], [2, 3]]
[[0, 0], [1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]] -> [[0, 0], [1, 2], [1, 3], [2, 3]]
[[2, 0], [1, 0]] -> [[2, 0]]

。请注意,输入未进行适当修改;如果需要,您需要稍微修改代码。

听起来像。您只是在寻找
itertools。组合([1,2,3],2)
“删除列表的第一个元素,然后删除列表的第一个和第二个元素等。”很抱歉,我无法理解描述。在第一步中,我们删除
[1,1]
,留下
[1,2],[1,3],[2,2],[2,3],[3,1],[3,2],[3,3]
;然后在第二步中,我们删除该元素的第一和第二个元素,即
[1,2],[1,3],[2,3],[3,3],
?但是您希望
[1,2]
保留在结果中。。。请澄清。@KarlKnechtel抱歉,我的意思是它应该删除重复的元素,因此列表的第一个元素以值1开头。然后在它应该删除列表中以值2开头的两个元素之后,你的问题仍然很模糊。“它应该删除重复的元素”:但输入列表中没有重复的元素。[2,0],[1,0]]的输入应该产生什么?哦,我想我现在明白了。在所有以1开头的子列表中,删除第一个;在从2开始的子列表中,移除前两个,等等?我不明白为什么你认为调用IdTraveStudio组合是一个直接解决问题的方法。(否则,文字[[1,2]、[1,3]、[2,3]]不也能解决问题吗?)也就是说,除非我完全误解了这个问题。答案编辑。。。
[[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]] -> [[1, 2], [1, 3], [2, 3]]
[[0, 0], [1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]] -> [[0, 0], [1, 2], [1, 3], [2, 3]]
[[2, 0], [1, 0]] -> [[2, 0]]