Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 17

Сортировка вложеного списка по условию

21.12.2021, 16:24. Показов 1084. Ответов 11
Метки нет (Все метки)

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

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
try:
    print('Введите размер матрицы N x M (2 <= n <= 15, 2 <= m <= 13,)')
    n=int(input('Введите количество строк, n='))
    m=int(input('Введите количество столбцов, m='))
    if n >= 2 and n <= 15 and m >= 2 and m <= 13:
        a=[]
        for i in range(n):
            b=[]
            for j in range(m):
                x=int(input('a[{},{}]='.format(i, j)))
                b.append(x)
            a.append(b)
        #вывод массива
        for row in a:
            for elem in row:
                print(elem, end=' ')
            print()
 
        #сортировка
                
        for i in range(n):
            if a[i][0] > a[i][m-1]:
                #print(a[i][0], '>', a[i][m-1], 'Первый элемент больше последнего')
                a[i:].sort()
 
        #вывод после обработки
        for i in range(n):
            for j in range(m):
                print(a[i][j], sep=' ', end=' ')
            print()
    else:
        print('Размер матрицы введен неправильно.')
except Exception:
    print('Ошибка!')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2021, 16:24
Ответы с готовыми решениями:

Генерация ссылки из вложеного списка
&lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#&quot; name=&quot;1&quot;&gt;1&lt;/a&gt; &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;#&quot; name=&quot;10&quot;&gt;10&lt;/a&gt; &lt;ul&gt; ...

JSON в виде раскрывающегося иерархического вложеного списка
Здравствуйте, я использую: JSON.stringify(event, null, 0) и получаю JSON строку. Мне нужно отображать полученные данные на HTML...

Сортировка списка перемешиванием по убыванию (шейкерная сортировка или двунаправленнная сортировка пузырьком)
Помогите написать функцию сортировки списка перемешиванием по убыванию (шейкерная сортировка или двунаправленнная сортировка пузырьком). ...

11
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.12.2021, 16:58
Лучший ответ Сообщение было отмечено witalian как решение

Решение

Цитата Сообщение от witalian Посмотреть сообщение
нужно делать обратную сортировку
что такое обратная сортировка?


Python
1
2
3
arr = [[3, 2, 1], [6, 5, 4], [9, 8, 7]]
arr = list(map(lambda x: sorted(x) if x[0] > x[-1] else x, arr))
[print(*i) for i in arr]
1
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 17
21.12.2021, 17:02  [ТС]
Цитата Сообщение от enx Посмотреть сообщение
что такое обратная сортировка?
имелось ввиду "сортировка по убыванию"
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.12.2021, 17:08
witalian, другие части не трогал, хотя очень хотелось.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
try:
    print('Введите размер матрицы N x M (2 <= n <= 15, 2 <= m <= 13,)')
    n = int(input('Введите количество строк, n='))
    m = int(input('Введите количество столбцов, m='))
    if n >= 2 and n <= 15 and m >= 2 and m <= 13:
        a = []
        for i in range(n):
            b = []
            for j in range(m):
                x = int(input('a[{},{}]='.format(i, j)))
                b.append(x)
            a.append(b)
        # вывод массива
        for row in a:
            for elem in row:
                print(elem, end=' ')
            print()
 
        # сортировка
        a = list(map(lambda x: sorted(x, reverse=True) if x[0] > x[-1] else x, a))
 
        # вывод после обработки
        [print(*i) for i in a]
    else:
        print('Размер матрицы введен неправильно.')
except Exception:
    print('Ошибка!')
0
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 17
21.12.2021, 17:20  [ТС]
Цитата Сообщение от enx Посмотреть сообщение
другие части не трогал, хотя очень хотелось.
Да, я так и добавил в 19-20 строку.
А по остальному коду, чем там плохо? Он писался исходя из примеров материалов преподавателя.

Добавлено через 3 минуты
enx, если можно, вопрос не в тему - думаю купить книгу Пол Бэрри. Изучаем программирование на Python. Или может есть что получше?
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
21.12.2021, 17:22
Цитата Сообщение от witalian Посмотреть сообщение
#вывод массива
разбей на функции, а позже будет легко работать с классами.
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.12.2021, 17:24
witalian, понятия не имею, не читал ее. Покупай сразу Лутца.
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
21.12.2021, 17:24
Цитата Сообщение от witalian Посмотреть сообщение
есть что получше?
https://www.cyberforum.ru/post15931730.html
0
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 17
21.12.2021, 17:34  [ТС]
Цитата Сообщение от Aviz__ Посмотреть сообщение
разбей на функции
С функциями немного писал - код работал. Но не уверен, что он оптимален. Нужно еще изучать
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
21.12.2021, 17:40
Цитата Сообщение от witalian Посмотреть сообщение
Нужно еще изучать
дорога покорятся идущему))
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.12.2021, 17:50
Цитата Сообщение от witalian Посмотреть сообщение
А по остальному коду, чем там плохо? Он писался исходя из примеров материалов преподавателя.
да с ним все нормально.
0
 Аватар для Aviz__
2739 / 2048 / 507
Регистрация: 17.02.2014
Сообщений: 9,467
21.12.2021, 17:53
Лучший ответ Сообщение было отмечено witalian как решение

Решение

witalian, во, гляди:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import random
 
 
def get_square_array_fill_rnd_nums(dim: int):
    square_array = []
    for r in range(dim):
        row = []
        square_array.append(row)
        for c in range(dim):
            square_array[r].append(random.randint(1, 9))
    return square_array
 
 
def print_array(arr):
    for r in range(len(arr)):
        print(arr[r])
 
 
sq_arr = get_square_array_fill_rnd_nums(int(input()))
print_array(sq_arr)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2021, 17:53
Помогаю со студенческими работами здесь

Оптимизация вложеного цикла For
Дан массив, состоящий из n элементов. Необходимо найти количество инверсий в данном массиве. Инверсией называется такая пара...

Сдвиг вложеного блока
это все должно быть в одну строчку &lt;header&gt; &lt;div class=&quot;top_menu&quot;&gt; &lt;a href=&quot;index.html&quot;&gt;Главная&lt;/a&gt; &lt;a...

Сортировка списка, переопределение оператора произвольного доступа к элементам списка
Необходимо написать функции сортировки списка с элементами Doll по всем полям класса Doll методом Шелла. Для этого пришлось переопределить...

Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка.
Как удалить найденный минимальный элемент из исходного списка??????????????? #include &quot;stdafx.h&quot; #include...

Не могу разобраться в логике программы (Сортировка вставкой связного списка. Сортировка реального файла)
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct node { int number; struct node *next; }; struct node...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru