Python 3D Array Печать по горизонтали - PullRequest
1 голос
/ 13 октября 2019

Я пытаюсь напечатать трехмерный массив букв по горизонтали, а не по вертикали.

Я пытался перебирать циклы, используя 3 для циклов, но в результате выводятся буквы по вертикали.

В настоящее время с3 для циклов Я печатаю этот массив по вертикали, но я бы хотел, чтобы все было бок о бок для каждого представления "Board".

Мой конкретный массив настроен ниже. Это результат, который я получаю, когда я печатаю (my_arr), начиная с [[], [array ((

# As an example of the 3D array that I have
letters = [[['a', 'b', 'c'], ['d', 'e', 'f']], [['g', 'h', 'i'], ['j', 'k', 'l']]]

# I'm doing
for l in letters:
    for ll in l:
        for val in ll:
            print(*val, sep='')

Above 3D array is not the exact representation of the array, but I'm getting:

a b c
d e f
g h i
j k l

but, my expected result is:

a b c g h i
d e f j k l

I would like to print this in a format similar to 
a b c g h i
d e f j k l

[[], [array([[' ', '-', '-', '-', '-', '-', '-', ' '],
       ['|', ' ', ' ', 'o', 'a', 'a', ' ', '|'],
       ['|', ' ', ' ', 'o', ' ', ' ', ' ', '|'],
       ['|', 'x', 'x', 'o', ' ', ' ', ' ', ' '],
       ['|', 'p', 'p', 'p', ' ', ' ', 'q', '|'],
       ['|', ' ', ' ', ' ', ' ', ' ', 'q', '|'],
       ['|', ' ', ' ', ' ', ' ', ' ', 'q', '|'],
       [' ', '-', '-', '-', '-', '-', '-', ' ']], dtype='<U1')], [], [array([[' ', '-', '-', '-', '-', '-', '-', ' '],
       ['|', ' ', ' ', 'o', ' ', 'a', 'a', '|'],
       ['|', ' ', ' ', 'o', ' ', ' ', ' ', '|'],
       ['|', 'x', 'x', 'o', ' ', ' ', ' ', ' '],
       ['|', ' ', 'p', 'p', 'p', ' ', 'q', '|'],
       ['|', ' ', ' ', ' ', ' ', ' ', 'q', '|'],
       ['|', ' ', ' ', ' ', ' ', ' ', 'q', '|'],
       [' ', '-', '-', '-', '-', '-', '-', ' ']], dtype='<U1')]]
)

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Это будет сделано

# As an example of the 3D array that I have
letters = [[['a', 'b', 'c'], ['d', 'e', 'f']], [['g', 'h', 'i'], ['j', 'k', 'l']]]

# I'm doing
for l in letters:
    for ll in l:
        for val in ll:
            print(*val,  end = ' ')
    print()

Причина

Python имеет предопределенный формат, если вы используете print (a_variable), то он автоматически перейдет на следующую строку, еслиВы указываете явно

0 голосов
/ 13 октября 2019

Это может подойти для вашего конкретного случая

# As an example of the 3D array that I have
letters = [[['a', 'b', 'c'], ['d', 'e', 'f']], [['g', 'h', 'i'], ['j', 'k', 'l']]]


j=0
for i in range(len((letters[j]))):
    for j in range(len(letters)):        
            for k in range(len((letters[j][i]))):  
                print(letters[j][i][k],end = ' ')
    print()
...