Python функция сортировки - PullRequest
0 голосов
/ 13 января 2020

эм ... Я смущен этим кодом, я действительно новичок в кодировании и удивляюсь, что кто-нибудь может помочь:

def takeSecond(elem):# If I pass the argument as a list, why don't I need to specify it here? 
     return elem[1]  # what return elem[1] means,does it return the y in (x,y)? but why!?
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
random.sort(key=takeSecond) # key = takeSecond what is this even mean lol?..
print('Sorted list:', random)

Ответы [ 2 ]

1 голос
/ 13 января 2020

Допустим, у вас есть список элементов, который содержит:

list = [a,b,c]

Если вы используете следующий фрагмент кода:

def func():
    return list[1]

Вы получите "b" как вывод. Число «1» - это не первый элемент, это второй элемент. Отсчет в python начинается с 0. Таким образом, в основном, если вы хотите получить доступ к «а», вы должны использовать:

def func():
    return list[0]

Поскольку 0 = a, 1 = b, 2 = c , и так далее. Если вы измените return elem[1] на return elem[0], вы получите переменную x.

1 голос
/ 13 января 2020
  • Здесь вы пытаетесь отсортировать на основе второго значения в данном списке
  • Функция takeSecond всегда возвращает второе значение в данном элементе.
  • В методе random.sort () вызов с параметром передаваемого ключа в качестве функции takeSecond, что означает выполнение сортировки по этому элементу. В нашем случае он вернет второй элемент. Таким образом, сортировка выполняется на основе второго элемента
  • , а затем распечатывается отсортированный список
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...