Список со списками. Последовательный вывод каждого n-ого значения из каждого m-ого списка
Есть список со списками:
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
Требуется вывести сначала первые символы каждого списка, потом вторые символы каждого списка и т.д. Чтобы получилось сердечко:
В подсказке к заданию сказано что требуется использовать 2 цикла. У меня пока получилось вывести только первый символ каждого из списков списка grid:
def paint():
x=0
y=0
for i in grid:
print(grid[x][y],end='')
x=x+1
Как можно сделать так, чтобы программа, после перебора всех элементов списка grid и вывода каждого 1ого значения каждого списка, начинала проход по всем элементам списка grid заново и выводила уже 2ой элемента каждого списка и т.д.
Заранее спасибо!
Ответы (4 шт):
Так?:
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
x = 0
y = 0
while True:
print(grid[x][y], end='')
x += 1
if x == 9:
y += 1
x = 0
print('\n')
if y == 6:
exit()
Если обязательно два цикла тогда вот:
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
x = 0
y = 0
for i in grid:
for _ in grid:
print(grid[x][y], end='')
x += 1
if x == 9:
y += 1
x = 0
print('\n')
if y == 6:
exit()
Так? Два цикла есть.
#Поможем человеку
grid = [['.', '.', '.', '.', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['O', 'O', 'O', 'O', 'O', '.'],
['.', 'O', 'O', 'O', 'O', 'O'],
['O', 'O', 'O', 'O', 'O', '.'],
['O', 'O', 'O', 'O', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
Index = 0
for x in range(len(grid[0])):
string = ''
for arr in grid:
string += arr[Index]
print(string)
Index += 1
как вариант:
def paint():
for c in range(len(grid[0])):
for r in range(len(grid)-1, -1, -1):
print(grid[r][c],end='')
print()
paint()
Будет работать только если вложенные списки имеют одинаковую длину.
for i in range(len(grid[0])):
for j in range(len(grid)):
print(grid[j][i], end='')
print()
