如何制作一组从 [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 循环,但无法弄清楚
- 共有28件
- 没有重复即 [1, 2] == [2, 1]
您可以将内循环起始索引基于外循环
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)
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 循环,但无法弄清楚
- 共有28件
- 没有重复即 [1, 2] == [2, 1]
您可以将内循环起始索引基于外循环
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)