#python #list-comprehension
Вопрос:
Верните N-е четное число (представьте список четных чисел, верните число в положении человеческого глаза входного числа)
Пример(Ввод —> Вывод)
1 --> 0 (the first even number is 0)
3 --> 4 (the 3rd even number is 4 (0, 2, 4))
Тест:
(nth_even(3), --> 4)
(nth_even(1), --> 0)
(nth_even(2), --> 2)
(nth_even(100), --> 198)
(nth_even(1298734), --> 2597466)
Мой код:
Мой код истекает при работе с большими числами, поэтому мне нужен более быстрый способ.
def nth_even(n):
data = [num for num in range(0, n*2) if num % 2 == 0]
return data[n-1]
Комментарии:
1. Вам определенно не нужно понимание списка =) Обратите внимание, что вы не ссылаетесь ни на один элемент, кроме последнего
2. Еще одна пиррова победа понимания. Отличная работа. Я поддерживаю оба умных/разумных ответа 🙂
3. Даже если бы вам пришлось вычислить
n-1
четное число th, чтобы вычислитьn
его, вы не использовали бы понимание списка. Вы бы просто использовали петлю. Нет никакой причины сохранять предыдущее четное число после того, как вы использовали его для вычисления следующего.
Ответ №1:
def nth_even(n):
return (n - 1) * 2
Комментарии:
1. Устранение понимания — фантастический ответ- молодец!
Ответ №2:
Если вы начинаете с 0 и ищете n-е четное число. Затем просто сделайте следующее:
def nth_even(n):
return (n-1)*2
Комментарии:
1.Устранение понимания — фантастический ответ- молодец!