如何制作一组从 [0, 0] 到 [6, 6] 且没有重复的子列表

how to make a set of sub-lists from [0, 0] to [6, 6] with no duplicates

Dominoes = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6],
       [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 3], [3, 4], [3, 5], [3, 6], [4, 4], [4, 5], [4, 6], [5, 5],
       [5, 6], [6, 6]]

我怎样才能使这个过程自动化?
我已经尝试了几个小时的列表理解和 for 循环和 while 循环,但无法弄清楚

您可以将内循环起始索引基于外循环

dominoes = []
    for i in range(7):
        for j in range(i, 7):
            dominoes.append([i, j])

或使用列表理解

dominoes = [[i, j] for i in range(7) for j in range(i, 7)]
# output: [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [2, 2], [2, 3], [2, 4], [2, 5], [2, 6], [3, 3], [3, 4], [3, 5], [3, 6], [4, 4], [4, 5], [4, 6], [5, 5], [5, 6], [6, 6]]

如果您想要一个不重复的数据结构,您可以使用 set(),由于您的数据不可修改,因此将其存储为元组而不是列表。

为防止重复,您可以添加一个条件,即每个元组必须遵循 (i, j) 格式,其中 i <= j。

dominoes = set()

for i in range(7):
    for j in range(7):
        if i <= j:
            dominoes.add((i, j))

print(dominoes)