Как создать словарь по часовой стрелке, с помощью python?

Пока звучит непонятно)
Но вот слушайте:
Есть круглый стол за которым n людей, каждый задает вопрос другому человеку через 2n-1 сидящих между ними(получается по-очереди каждому, через одного, себе нельзя).
Мне требуется создать словарь типа, n = 5:
d1c615e4fb814076ae21d8e4428b35cd.JPG

Вот моя тщетная попытка:
p = list(range(1,n+1))
chet = dict(zip(range(3,n+1,2),range(1,n+1)))
ost = []
z = []
f = 0
while f != chet[n]:
    for i in [1,2]:
        ost.append(p.pop(0))
        if i == 2:
            p = p + ost
            print(p)
            z.append(p)
            print(z)
    ost = []
    f += 1

Вот тут теперь все получилось, но pop из массива z стирает
  • Вопрос задан
  • 2721 просмотр
Решения вопроса 1
karabanov
@karabanov
Системный администратор
И действительно:
n = 5

s = list(range(1, n+1))

out = []

for x in range(1, len(s) + 1):
  for y in range(1, len(s) + 1):
    out.append(s[-y:] + s[:-y])

print out

И результат:
[
[5, 1, 2, 3, 4],
[4, 5, 1, 2, 3],
[3, 4, 5, 1, 2],
[2, 3, 4, 5, 1],
[1, 2, 3, 4, 5],
[5, 1, 2, 3, 4],
[4, 5, 1, 2, 3],
[3, 4, 5, 1, 2],
[2, 3, 4, 5, 1],
[1, 2, 3, 4, 5],
[5, 1, 2, 3, 4],
[4, 5, 1, 2, 3],
[3, 4, 5, 1, 2],
[2, 3, 4, 5, 1],
[1, 2, 3, 4, 5],
[5, 1, 2, 3, 4],
[4, 5, 1, 2, 3],
[3, 4, 5, 1, 2],
[2, 3, 4, 5, 1],
[1, 2, 3, 4, 5],
[5, 1, 2, 3, 4],
[4, 5, 1, 2, 3],
[3, 4, 5, 1, 2],
[2, 3, 4, 5, 1],
[1, 2, 3, 4, 5]]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы