Передача списка в качестве параметра

При передаче списка в функцию, например, так:

def sorted(a)

можно модифицировать элементы списка при помощи присваиваний a[i] = ..., методов pop, append, insert и т.д. Это не считается модификацией списка, как целого, т.е. имя a по-прежнему указывает на тот же список, при этом содержимое списка меняется.

Копирование списков

Присваивание b = a не создает новый список, а всего лишь делает b ссылкой на уже существующий список. Для создания копии списка можно использовать срезы:

b = a[:]

или использовать функцию copy из одноименного модуля:

from copy import *
b = copy(a)

Функция sorted и метод sort

Функция sorted получает в качестве аргумента список, и возвращает ссылку на новый список, содержащий те же элементы в порядке возрастания. Пример:

A = [1, 6, 2, 5, 3, 4]
B = sorted(A)

Метод sort применяется к списку и переставляет элементы списка в порядке возрастания. Пример:

A.sort()

Например, вот решение задачи про сортировку чисел в порядке неубывания в одну строку:

print(" ".join(map(str, sorted(map(int,input().split())))))

У функции sorted и метода sort есть параметр reverse. Если этот параметр установить в True, то сортировка будет выполняться в порядке невозрастания. Пример:

B = sorted(A, reverse=True)
A.sort(reverse=True)

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

Во всех последующих задачах при необходимости использовать сортировку лучше использовать стандартные алгоритмы сортировки.