Skip to content

Instantly share code, notes, and snippets.

@konstantinfarrell
Created June 28, 2016 20:42
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save konstantinfarrell/c4f84ea579615da63de0eb325753b71d to your computer and use it in GitHub Desktop.
Save konstantinfarrell/c4f84ea579615da63de0eb325753b71d to your computer and use it in GitHub Desktop.
FizzBuzz one-liner in Python 3
# Using a lambda function
print(list(map(lambda i: "Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i), range(1,101))))
# Using a for loop
for i in range(1, 101): print("Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i))
@JonathanDagan
Copy link

@ijknabla some next level memory management 👌😂👏
would even be 2 bytes since you also changed it for the divisible by 5 or was it already 1 byte for both?

@ijknabla
Copy link

ijknabla commented Apr 6, 2023

@JonathanDagan
YES

  • i%3==0i%3<1 (-1 bytes)
  • i%5==0i%5<1 (-1 bytes)
    total 2 bytes

@JonathanDagan
Copy link

JonathanDagan commented Apr 13, 2023

@ijknabla

💯

@trslater
Copy link

trslater commented Dec 1, 2023

Similar in length, but using a different technique, and I'm using input and count (itertools), so it goes forever but is user controlled:

[input("fizz"[i%3*4:] + "buzz"[i%5*4:] or i) for i in count(1)]

I guess count shaves off a few more characters as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment