#python #python-3.x #list #loops #list-comprehension
Вопрос:
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]
Комментарии:
1. Вы пробовали что-нибудь до сих пор?
2. да, я пытался понять список и цикл for и цикл while, но не смог этого понять
Ответ №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]]
Ответ №2:
Если вам нужна неповторяющаяся структура данных, вы можете использовать set(), и, поскольку ваши данные не могут быть изменены, сохраните их в виде кортежа, а не списка.
Чтобы предотвратить дублирование, вы можете добавить условие, что каждый кортеж должен соответствовать формату (i, j), где i
dominoes = set()
for i in range(7):
for j in range(7):
if i <= j:
dominoes.add((i, j))
print(dominoes)
Комментарии:
1. спасибо, это была ценная информация для будущих практик