Как улучшить понимание этого списка, нужно вернуть N-е четное число, нужен ли мне список или диктант четных чисел?

#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.Устранение понимания — фантастический ответ- молодец!