|
2 / 2 / 0
Регистрация: 20.04.2018
Сообщений: 48
|
|
Редактирование матрицы19.11.2020, 09:42. Показов 1251. Ответов 9
Дана матрица
[['1', '1', '1', '1', '1', '1'], ['1', '1', '1', '1', '1', '1', '1', '1'], ['1', '1', '1', '1', '1', '1', '1'], ['1', '1', '1', '1', '1'], ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'], ['1', '1', '1', '1', '1', '1'], ['1', '1', '1', '1']] мне нужно описать условие при котором если ячейку окружают одинаковые символы по кругу то заменить её на '2'.Т.е если возьмём элемент list[1][1] то его переписать '2'.Попытался сделать через if выдаёт ошибку выход за пределы, что естественно.Далее решил внедрить туда исключение,ошибка уже не всплывает,но всплывает совершенно не та матрица.Вот сам код: list1= deepcopy(list) for x in range(len(mountain)): for i in range(len(mountain[x])): try: if list[x][i] == list[x + 1][i] \ and list[x][i] == list[x][i + 1]\ and list[x][i] == list[x - 1][i] \ and list[x][i] == list[x][i - 1]: list1[x][i] = '2' except IndexError: continue P.s сделал копию основной матрицы так как если менять значения в оригинале то условия не будут проходить В итоге вот вывод: [['2', '2', '2', '2', '1', '1'], ['2', '2', '2', '2', '2', '2', '1', '1'], ['2', '2', '2', '2', '2', '1', '1'], ['2', '2', '2', '2', '1'], ['2', '2', '2', '2', '2', '1', '1', '1', '1', '1', '1'], ['2', '2', '2', '2', '1', '1'], ['1', '1', '1', '1']] По сути даже первая строчка матрицы должна состоять из '1' так как условие будет порождать исключение,а исключение будет пропускать текущую итерацию.Каким то странным образом 2 последних ячейки только '1'
0
|
|
| 19.11.2020, 09:42 | |
|
Ответы с готовыми решениями:
9
Редактирование матрицы редактирование элементов матрицы
|
|
2 / 2 / 0
Регистрация: 20.04.2018
Сообщений: 48
|
|
| 19.11.2020, 12:20 [ТС] | |
|
А толку если матрица не равносторонняя,тут только исключением и можно отделаться.Ошибка будет так и так
0
|
|
|
Автоматизируй это!
|
||
| 19.11.2020, 12:30 | ||
|
Например циклы начинать как выше сказали от 1 до препоследнего элемента каждого списка
0
|
||
|
2 / 2 / 0
Регистрация: 20.04.2018
Сообщений: 48
|
|
| 19.11.2020, 12:42 [ТС] | |
|
Хорошо,допустим я уберу исключение ,сделаю в двух циклах len(list) - 1 .Ну а как же условия тогда?Там по условию если с 4 сторон от этой ячейки одинаковые символы то ТОЛЬКО тогда его поменять.А как же list[5]?У него с list[5][6:] элемента нет соседей ни сверху ни снизу.Именно поэтому вылезает ошибка,интерпретатотр пытается сравнить значения list[5][6:] со значениями list[4][6:] и list[6][6:].Тут не поможет уменьшение длины обоих списков в условии цикла.
0
|
|
|
2 / 2 / 0
Регистрация: 20.04.2018
Сообщений: 48
|
|
| 19.11.2020, 13:31 [ТС] | |
|
А не проще исключением перехватывать и просто пропускать текущую итерацию
0
|
|
|
Автоматизируй это!
|
|
| 19.11.2020, 14:24 | |
|
нет, но ты конечно делай как тебе удобно. Исключение имело бы смысл, если бы мы ждали что матрица прямоугольная и вдруг по какой то причине нет элемента выше/ниже. А в твоем случае мы заранее знаем что снизу/сверху может не быть элемента, надо просто это проверять.
0
|
|
|
|
|
| 19.11.2020, 15:10 | |
|
Dezoway, думай, парень, думай.
Исключение написать, конечно, проще. Сложнее будет потом, когда придётся разбираться в этом коде и когда "что-то пойдёт не так". Welemir1 правильно написал. Например, вывалитесь вы в это исключение, и поди разбери - то ли там ожидаемое окончание строки, то ли логическая ошибка в коде, которая и привела неверному индексу.
0
|
|
| 19.11.2020, 15:10 | |
|
Помогаю со студенческими работами здесь
10
Отображение и редактирование матрицы Редактирование элементов матрицы С++ задача вектор векторов(редактирование матрицы)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|