Нужно объяснение, о каком маленьком python коде списка есть другие функции по умолчанию? - PullRequest
0 голосов
/ 23 марта 2020

Я новичок в программировании, и во время обучения я наткнулся на этот код, чтобы найти второе по величине число в списке. Несколько вещей, которые я не понимаю в этом коде: как работают функции map () и set () используется и какова цель sys.stdin.readline (), а мы можем использовать input ()? И я не понимаю цели "_" в строке _ = sys.stdin.readline(). Пожалуйста, помогите.

import sys

if __name__ == "__main__":
    _ = sys.stdin.readline()
    a = set(map(int, sys.stdin.readline().split()))

    print (sorted(a)[-2])

Ответы [ 2 ]

1 голос
/ 23 марта 2020
  • нет никакой разницы в использовании sys.stdin.readline() вместо input(), учитывая, что это то же самое, допустим, вы прочитали 1 5 98 5
  • , поскольку он использует split() у вас есть список строк, например ["1", "5", "98", "5"]

  • операция map применяет преобразование к int для каждого, чтобы получить [1, 5, 98, 5]

  • затем передайте его set, чтобы получить уникальные элементы [1, 5, 98]

Фактически эта программа считывает значения от пользователя и возвращает второе большее значение

0 голосов
/ 23 марта 2020

**

Sys.stdin.readline ()

** Stdin обозначает стандартный ввод, который является потоком, из которого программа считывает свои входные данные. Этот метод немного отличается от метода input (), так как он также читает escape-символ, введенный пользователем. Более того, этот метод также предоставляет параметр для размера, т. Е. Сколько символов он может читать за раз.

**

Input ()

** Эта функция сначала принимает ввод от пользователя, а затем оценивает выражение, что означает, что Python автоматически определяет, введен ли пользователь строку или число или список. Если введенные данные неверны, то либо синтаксическая ошибка, либо исключение повышаются на Python.

https://www.geeksforgeeks.org/difference-between-input-and-sys-stdin-readline/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...