У меня есть вложенный список, состоящий из «х» и «.», С границами, представленными «-».Если есть «х», я должен изменить «.»в квадрате 3x3 от 'x' до символа, такого как '|'.
У меня есть рабочий код, но мне интересно, если и как я мог бы вместо этого использовать понимание списка для этой проблемы?Я не знаю, как или если я могу заменить значение в моем вложенном списке, используя понимание списка.Я только в том, что при использовании понимания списка, такого как
myList = [expression, for clause, condition]
, код добавляет выражение в myList, поскольку он повторяет цикл for и проверяет условие.
Учитывая это как мой первоначальный список:
myList = [
['-','-','-','-','-','-','-'],
['-','x','.','.','-','-','-'],
['-','.','.','.','-','-','-'],
['-','.','x','.','-','-','-'],
['-','.','.','.','.','.','-'],
['-','-','-','-','-','-','-']
]
Я должен изменить это на это (при условии, что начальная строка и столбец равны 3 и 2:
myList = [
['-','-','-','-','-','-','-'],
['-','x','.','.','-','-','-'],
['-','|','|','|','-','-','-'],
['-','|','x','|','-','-','-'],
['-','|','|','|','.','.','-'],
['-','-','-','-','-','-','-']
]
Моя функция принимает вложенный список и значения строки и столбца«х» в качестве входных параметров. Вот что у меня есть, и это работает:
for row in [y-1, y, y+1]:
for column in [x-1, x, x+1]:
if nestedList[row][column] == '.':
nestedList[row][column] = character