Есть ли лучший способ создать кортеж из всех возможных кортежей в виде (x1, y1, x2, y2)? - PullRequest
3 голосов
/ 19 апреля 2010

Я хочу создать кортеж в виде кортежа ((x1, y1, x2, y2), ... (x1, y1, x2, y2)), где x1, y1, x2, y2 находятся в диапазоне из (0,8).

Есть ли другой способ, кроме следующего?

S = list()
for x1 in range(0, 8):
    for y1 in range(0, 8):
        for x2 in range(0, 8):
            for y2 in range(0, 8):
                S.append([x1,y1,x2,y2])
S = tuple(S)       

спасибо

1 Ответ

8 голосов
/ 19 апреля 2010
tuple([x1, y1, x2, y2] for x1 in range(0, 8) for x2 in range(0, 8) for y1 in range(0, 8) for y2 in range(0, 8))

Или

import itertools
a = [range(0,8)]*4
print tuple(itertools.product(*a))

Обратите внимание, что это возвращает кортеж кортежей. Если вам нужен кортеж списков, используйте tuple(itertools.imap(list, itertools.product(*a))).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...