Почему выводит ошибку?

Bismar

Новичок
Пользователь
Окт 8, 2023
11
1
3
Здравствуйте.

вот задача:
Дан список из N (N≤2*10⁵) элементов, которые принимают целые значения от 0 до 100 (100 включая).
Отсортируйте этот список в порядке неубывания элементов. Выведите полученный список.
Решение оформите в виде функции CountSort(A), которая модифицирует передаваемый ей список. Использовать встроенные функции сортировки нельзя.

Её нужно решить сортировкой подсчётом

Вот код:
Python:
def CountSort(A):
    n = max(A)
    B = [0] * (n + 1)
    for i in A:
        B[i] += 1
    for j in range(n + 1):
        return(str(j) + ' ') * B[j], end=''


M = list(map(int, input().split()))
print(CountSort(M))

end='' у меня выводится красным и пишет ошибку invalid syntax
Почему выводит ошибку и как её можно обойти если писать без end='' ?

Операционная система Windows
Версия питон 3.10
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
end='' у меня выводится красным и пишет ошибку invalid syntax
а каким боком он там указан ваш end? это же параметр принта
 

Bismar

Новичок
Пользователь
Окт 8, 2023
11
1
3
А как можно заменить его тогда?
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
374
108
43
А как можно заменить его тогда?
зачем заменять? И на что?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 589
459
83
А как можно заменить его тогда?
return заменить на print, а в конце print убрать
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
Которая модифицирует передаваемый ей список.

Python:
def CountSort(A):
    # Создаем новый массив
    B = [0] * max(A)
    # Наполняем его
    for i in A:
        B[i - 1] += 1
    # Очищаем старый
    A.clear()
    # Наполняем старый
    for n, i in enumerate(B):
        A.extend([n + 1] * i)


M = [1, 5, 2, 6, 26, 42, 9, 12, 2]
CountSort(M)
print(M)
 

hellscoder

Новичок
Пользователь
Янв 28, 2024
12
1
3
Python:
def CountSort(A):
    n = max(A)
    B = [0] * (n + 1)
    for i in A:
        B[i] += 1
    
    result = ''
    for j in range(n + 1):
        result += (str(j) + ' ') * B[j]
    
    return result.strip()  # strip() to remove the last space

M = list(map(int, input().split()))
print(CountSort(M))
 

Форум IT Специалистов