Форум сайта python.su
Здравствуйте.
Не получается удалить символ в конкретном столбце и в конкретной строке введенной пользователем.
И в выводе появляются запятые и квадратные скобки. Как выполнить вывод без них ?
size = map(int, input(f'введите кол-во случайных символов в строке (через запятую, в след. строке и т.д.: ').split(',')) res = [[randint(0, 9) for i in range(s)] for s in size] for a in res: for z in a: print(z, end=' ') print() c, v = int(input('Удалить строку №: ')), int(input('Удалить столбец №: ')) del res[c - 1] for row in res: del row[v - 1] print(*res, sep='\n')
Отредактировано AleksandrM (Янв. 7, 2022 12:45:05)
Офлайн
по-моему всё верно
Офлайн
Не могу от скобок и запятых (в выводе) избавиться, и как конкретно удалить символ (не весь столбец) ?
Офлайн
AleksandrM
вы и удаляете символ. Но так как вы удаляете символ в каждой строке, то удаляется столбец
s = [1, 2, 3, 4, 5] print(' '.join(str(i) for i in s))
Офлайн
А как реализовать, например удалить конкретно 5 ( в первом столбце, первой строки), из вашего скриншота ?
Отредактировано AleksandrM (Янв. 7, 2022 17:30:01)
Офлайн
AleksandrM
Мне кажется, вы вообще неправильно понимаете задание. В питоне удаление элемента списка встречается в очень ограниченном круге задач. Гораздо чаще просто строят новый список на основании старого. Если какие-то элементы не нужны, то их просто не включают в новый список.
Офлайн
Вообще, ввод чего-то, преобразование чего-то и вывод чего-то не должны быть связаны между собой вообще никак. То есть ввод не должен знать, что будет делаться с введёнными данными, будут ли они преобразовываться и будут ли они выводиться. Преобразования не должны знать, когда данные были введены и как, и куда эти данные потом пойдут после преобразований и будут ли вообще выводиться. Вывод не должен знать, откуда пришли данные и что с ними делали, вводили ли их и преобразовывали ли их.
Поэтому, например, вот у тебя двумерный список
arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
>>> arr = [ ... [1, 2, 3], ... [4, 5, 6], ... [7, 8, 9] ... ] >>> >>> i, j = 2, 1 >>> del arr[i - 1][j - 1] >>> >>> arr [[1, 2, 3], [5, 6], [7, 8, 9]] >>>
>>> arr = [ ... [1, 2, 3], ... [4, 5, 6], ... [7, 8, 9] ... ] >>> >>> i, j = 2, 1 >>> arr[i - 1][j - 1] = None >>> >>> arr [[1, 2, 3], [None, 5, 6], [7, 8, 9]] >>>
>>> arr = [ ... [1, 2, 3], ... [None, 5, 6], ... [7, 8, 9] ... ] >>> >>> for i in arr: ... for j in i: ... if j is None: ... print('.', end=' ') ... else: ... print(j, end=' ') ... print() ... 1 2 3 . 5 6 7 8 9 >>>
Отредактировано py.user.next (Янв. 7, 2022 19:58:22)
Офлайн
py.user.next
Вообще, ввод чего-то, преобразование чего-то и вывод чего-то не должны быть связаны между собой вообще никак. То есть ввод не должен знать, что будет делаться с введёнными данными, будут ли они преобразовываться и будут ли они выводиться. Преобразования не должны знать, когда данные были введены и как, и куда эти данные потом пойдут после преобразований и будут ли вообще выводиться. Вывод не должен знать, откуда пришли данные и что с ними делали, вводили ли их и преобразовывали ли их.Поэтому, например, вот у тебя двумерный список
Офлайн