Отображение кортежа (R, R) в ((R, R), R)? - PullRequest
0 голосов
/ 05 октября 2011

Вход

[[0 0 0 0 0]
 [0 4 0 0 0]
 [0 1 0 0 0]
 [0 1 2 0 0]
 [0 1 2 3 0]]

Предполагаемый выход

[[(0, day00) (0, day01) (0, day02) (0, day03) (0, day04)]
 [(0, day10) (4, day11) (0, day12) (0, day13) (0, day14)]
 [(0, day20) (1, day21) (0, day22) (0, day23) (0, day24)]
 [(0, day30) (1, day31) (2, day32) (0, day33) (0, day34)]
 [(0, day40) (1, day41) (2, day42) (3, day43) (0, day44)]]

Связано

  1. Здесь функция для генерации случайных дней с пропорцией.
  2. Здесь функция для генерации матрицы случайной оценки

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Отсканируйте исходную матрицу и сгенерируйте матрицу результатов, один к одному:

random_matrix = generate_random_matrix(...) # the way you want
result = []
for row in random_matrix:
  result_row = []
  for value in row:
    result_row.append((value, randomDate(...)))
  result.append(result_row)
print result # or whatever

Более короткий, но более загадочный способ - использовать понимания:

result = [ 
  [(value, randomDate(...)) for value in row] 
  for row in genenerate_random_matrix(...) 
]
0 голосов
/ 05 октября 2011
x = [[0, 0, 0, 0, 0,],
     [0, 4, 0, 0, 0,],
     [0, 1, 0, 0, 0,],
     [0, 1, 2, 0, 0,],
     [0, 1, 2, 3, 0,],]

enum = enumerate
[[(item, 'day%02d' % (i*10+j)) for j, item in enum(row)] for i, row in enum(x)]

дает

[[(0, 'day00'), (0, 'day01'), (0, 'day02'), (0, 'day03'), (0, 'day04')],
 [(0, 'day10'), (4, 'day11'), (0, 'day12'), (0, 'day13'), (0, 'day14')],
 [(0, 'day20'), (1, 'day21'), (0, 'day22'), (0, 'day23'), (0, 'day24')],
 [(0, 'day30'), (1, 'day31'), (2, 'day32'), (0, 'day33'), (0, 'day34')],
 [(0, 'day40'), (1, 'day41'), (2, 'day42'), (3, 'day43'), (0, 'day44')]]
0 голосов
/ 05 октября 2011
def o(inputt):
    output = []
    for i, arr in enumerate(inputt):
        n = []
        for j, x in enumerate(arr):
            n.append((x, "day" + str(i) + str(j)))
        output.append(n)
    return output

print o([[0, 0, 0, 0, 0],
 [0, 4, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 1, 2, 0, 0],
 [0, 1, 2, 3, 0]])
...