Python Forum
My code which adds fibonacci numbers to a list adds too many terms.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My code which adds fibonacci numbers to a list adds too many terms.
#5
Misunderstanding. You meant to have values in the list which are lower than 100.
My example creates a list with exactly 100 elements.

You compared j > 100, which is not the final value.
You've to compare (x[-1] + x[-2]) >= 100.

x = [0, 1]
for j in x:
    result = x[-1] + x[-2]
    if result >= 100:
        # stop is result is bigger or equal to 100
        break
    x.append(result)
print(x)
With my provided example:
from itertools import takewhile, islice


def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = a + b, a


def condition(value):
    return value < 100


generator = fib()
fibs_below_100 = list(takewhile(condition, generator))
And you can combine different functions from itertools.

Not bigger than 50 and maximum 10 elements:
fib_gen = fib()
fibs_below_50 = takewhile(lambda x: x < 100, fib_gen)
fibs_max_10_elements = islice(fibs_below_50 , 0, 10)

final_result = list(fibs_max_10_elements)
There is one big pitfall, if you use infinite generators:
[x for x in fib if x < 100]
This code will run until you get a MemoryError or hit CTRL+C.
There is no stop condition. Only the decision is made to take x or not.
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply


Messages In This Thread
RE: My code which adds fibonacci numbers to a list adds too many terms. - by DeaD_EyE - Jun-10-2020, 02:58 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  How do I calculate a ratio from 2 numbers and return an equivalent list of about 1000 Pleiades 8 15,817 Jan-05-2024, 08:30 PM
Last Post: sgrey
  find random numbers that are = to the first 2 number of a list. Frankduc 23 3,327 Apr-05-2023, 07:36 PM
Last Post: Frankduc
  List of random numbers astral_travel 17 2,805 Dec-02-2022, 10:37 PM
Last Post: deanhystad
  Remove numbers from a list menator01 4 1,386 Nov-13-2022, 01:27 AM
Last Post: menator01
  [split] why can't i create a list of numbers (ints) with random.randrange() astral_travel 7 1,583 Oct-23-2022, 11:13 PM
Last Post: Pedroski55
  Divide a number by numbers in a list. Wallen 7 8,119 Feb-12-2022, 01:51 PM
Last Post: deanhystad
  producing numbers out of a list bouraque7878 10 3,834 Nov-12-2021, 09:13 PM
Last Post: jefsummers
  How to change odd to even numbers in the list? plumberpy 8 3,818 Aug-08-2021, 11:07 AM
Last Post: plumberpy
  convert numbers into list lokesh 1 2,412 Jun-03-2021, 06:37 AM
Last Post: menator01
  Fibonacci Yasunaga 7 2,985 May-16-2021, 02:36 PM
Last Post: csr

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020