Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
6 / 4 / 2
Регистрация: 19.03.2021
Сообщений: 25

Почему не сработала лямбда функция при поиске минимальных и максимальных элементов матрицы?

22.03.2021, 15:30. Показов 2504. Ответов 11

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Продолжаю изучение Python (а если быть точнее, то заполняю пробелы).
Необходимо решить задачу:
Поменять местами строки, содержащие минимальный и максимальный элементы матрицы.
Решил так:

Python
1
2
3
4
5
6
7
8
9
10
#создаем двумерный массив генератором
number_of_rows = int(input("Введите количество строк: ")) 
matrix = [[int(j) for j in input("Введите все элементы одной строки (можно и через пробел): ").split()] for i in range(number_of_rows)]
print("Ваша матрица : ", matrix)
 
a = matrix.index(min(matrix)) #мин. значение
b = matrix.index(max(matrix)) #макс. значение
 
matrix[a],matrix[b]=matrix[b],matrix[a] #инвертируем с учетом новых данных
print("Матрица, в которой были изменены строки, содержащие минимальный и максимальный элементы: ", matrix)
Но при введении нуля выдает неверный результат.
В чем была ошибка?
Спасибо заранее
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2021, 15:30
Ответы с готовыми решениями:

Нахождение максимальных элементов, находящийся на периметре матрицы, и минимальных элементов вне периметра матрицы
Разработать программу, которая в целочисленной квадратной матрице находит максимальный элемент(ы), находящийся на периметре матрицы, и...

Проверка минимальных и максимальных элементов матрицы
помогите исправить ошибку!при проверке минимальных и максимальных элементов выдает неправильные значения!из за неправильного указания...

Дано матрицы A(4,4) и Y (5,5), Ввод, вывод матрицы, поиск минимальных и максимальных элементов для выдачи в виде функци
Дано матрицы A(4,4) и Y (5,5), для каждой нужно найти наибольшие и наименьшие элементы главной диагонали. Ввод, вывод матрицы, поиск...

11
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
22.03.2021, 15:35
Python
1
2
min([[1,0,0],[2,-5,1], [0, 1, 1]])
[0, 1, 1]
Верно находит минимальный элемент? (нет)

Вам нужно что-то такое
Python
1
2
min([[1,0,0], [2,-5,1], [0, 1, 1]], key=lambda row: min(row))
[2, -5, 1]
1
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
22.03.2021, 15:38
Цитата Сообщение от blackgryph0n Посмотреть сообщение
Почему не сработала лямбда функция
в какой строке???
ну а теперь
Python
1
2
3
4
5
6
7
>>> [int(j) for j in input("Введите все элементы одной строки (можно и через пробел): ").split()]
Введите все элементы одной строки (можно и через пробел): 12345678
[12345678]
>>> [int(j) for j in input("Введите все элементы одной строки (можно и через пробел): ").split()]
Введите все элементы одной строки (можно и через пробел): 12 34 56 78
[12, 34, 56, 78]
>>>
разницу видите?
1
6 / 4 / 2
Регистрация: 19.03.2021
Сообщений: 25
22.03.2021, 15:39  [ТС]
Спасибо большое за предложенный вариант. Даже не задумывался о таком расположении.
По идее он должен взять и поменять местами строки с минимальным и максимальным элементом. В Вашем примере все-таки он должен был вывести строку [2,-5,1].
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
22.03.2021, 15:41
Лучший ответ Сообщение было отмечено blackgryph0n как решение

Решение

Я не вижу тут лямбду...
1
6 / 4 / 2
Регистрация: 19.03.2021
Сообщений: 25
22.03.2021, 15:44  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
в какой строке???
имел в виду строку матрицы.
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
разницу видите?
да
0
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
22.03.2021, 15:48
Цитата Сообщение от blackgryph0n Посмотреть сообщение
имел в виду строку матрицы
я думал один не вижу
Цитата Сообщение от Catstail Посмотреть сообщение
Я не вижу тут лямбду...
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
22.03.2021, 15:49
blackgryph0n, Вы неправильно ищите максимум и минимум. Точнее, Вы ищете строку, которая минимальна и максимальна при лексикографическом порядке сравнения:

Python
1
2
3
4
5
6
7
8
9
matr=[[1,2,3],[-1,-7,5],[-1,-7,9]]
 
a = matr.index(min(matr)) #мин. значение
b = matr.index(max(matr)) #макс. значение
 
print(a,b)
 
>>> 
1 0
Видим, что минимальная строка - первая, а максимальная - нулевая. Минимальный элемент содержится в первой строке, а максимальный - во второй. Вы твердо уверены, что Вам нужно именно это? Или координаты минимума и максимума?
1
6 / 4 / 2
Регистрация: 19.03.2021
Сообщений: 25
22.03.2021, 16:01  [ТС]
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
Сообщение от Catstail
Я не вижу тут лямбду...
Видимо, не так понял

Цитата Сообщение от Catstail Посмотреть сообщение
минимальная строка - первая, а максимальная - нулевая
А разве вторая строка не является максимальной?

Цитата Сообщение от Catstail Посмотреть сообщение
Или координаты минимума и максимума?
Кажется, что надо было спросить в Вашей формулировке.

Мне необходимо найти строки матрицы, в одной из которых есть минимальный (по модулю) элемент, а в другой максимальный. Но вывести надо измененную матрицу, в которой поменялись местами строка с минимальным элементом и строка с максимальным элементом. Прошу прощения, что неясно выразился(

Полагаю, на основной вопрос был получен ответ (касательно лямбда функции). Спасибо большое всем за помощь и быстрый отклик. Если возникнут проблемы с решением задачи создам отдельную тему (чтобы не нарушать правила)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,707
Записей в блоге: 14
22.03.2021, 16:08
Цитата Сообщение от blackgryph0n Посмотреть сообщение
А разве вторая строка не является максимальной?
в моем примере - нулевая.

Добавлено через 1 минуту
Цитата Сообщение от blackgryph0n Посмотреть сообщение
Мне необходимо найти строки матрицы, в одной из которых есть минимальный (по модулю) элемент, а в другой максимальный. Но вывести надо измененную матрицу, в которой поменялись местами строка с минимальным элементом и строка с максимальным элементом.
- вот. Ваш код делает не то.
1
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
22.03.2021, 17:56
Лучший ответ Сообщение было отмечено blackgryph0n как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
index_min = 0# считаем что мин и макс значения находятся 
index_max = 0  # в первой строке с индексом 0
 
 
matr = [[1,0,0],[2,-5,1], [0, 2, 1]]
min_el = min(matr[0])
max_el = max(matr[0])
 
for i in range(1, len(matr)): # первую строку не смотрим мин и макс с нее у нас есть
    min_ = min(matr[i]) # min(abs(matr[i]))
    max_ = max(matr[i]) # max(abs(matr[i]))
    if min_ < min_el:
        min_el = min_
        index_min = i
    if max_ > max_el:
        max_ = max_el
        index_max = i
 
matr[index_min],matr[index_max] = matr[index_max],matr[index_min]
print(matr)
2
6 / 4 / 2
Регистрация: 19.03.2021
Сообщений: 25
23.03.2021, 09:15  [ТС]
Спасибо большое за Ваш ответ!
Прошу прощения за беспокойство и возможное непреднамеренное заблуждение.
При вводе [[-2, 2, 5], [10, 8, 9], [3, 4, 6]], получилось-[[3, 4, 6], [10, 8, 9], [-2, 2, 5]]. Или тут я уже сам себе противоречу с условием?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2021, 09:15
Помогаю со студенческими работами здесь

Массив из максимальных элементов в каждом столбце матрицы и минимальных элементов в каждой строке
заданная матрица q (k, n). найти значение максимального элемента в каждом столбце, значение минимального элемента в каждой строке и...

Найти произведение и сумму максимальных и минимальных элементов матрицы
Найти произведение и сумму максимальных и минимальных элементов

Поиск минимальных и максимальных элементов в строках, столбцах матрицы
При описании процедур и функций в заданиях данной подгруппы необходимо учитывать особенности, связанные с передачей массивов в качестве...

Подсчитать разницу минимальных/максимальных элементов в каждом столбце матрицы
Нужно подсчитать разницу: (макс и мин елементов) у каждом столбце матрицы. Вроде должно работать, но не получаеться: /* * To change...

Вычислить суммы максимальных и минимальных элементов каждой строки матрицы
Помогите с вычислением минимальных и максимальных элементов. Желательно вывести ответы в виде вектора-таблицы. Вот мое начало:uses crt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru