Skip to content

Instantly share code, notes, and snippets.

Created June 28, 2016 20:42
  • Star 8 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
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))
Copy link

list comprehension verion:

[print("Fizz"*(i%3==0)+"Buzz"*(i%5==0) or i) for i in range(101)]

also the:


isn't really necessary

otherwise nice implementation

Copy link

Didn´t like the print in the loop though:

FizzBuzzChallenge = "\n".join(["Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i) for i in range(101)])

In this case str(i) is necessary.

Copy link

khanfarhan10 commented Oct 3, 2021

print('\n'.join(list(map(lambda i: "Fizz"*(i%3==0)+"Buzz"*(i%5==0) or str(i), range(1,int(input())+1)))))

Copy link

print(list(map(lambda i: "Fizz" * (i % 3 == 0) + "Buzz" * (i % 5 == 0) or str(i), range(0, 101))))

Copy link

miron commented May 20, 2022

@JonathanDagan really nice! But this one actually works:

_=[print("Fizz"*(i%3==0)+"Buzz"*(i%5==0)or i)for i in range(1,101)]

You still get the output, but the print doesn't return the list with None values.

Copy link

ijknabla commented Mar 9, 2023

i%3==0i%3<1 saves 1 byte per comparison.

[print("Fizz"*(i%3<1)+"Buzz"*(i%5<1)or i)for i in range(1,101)]

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?

Copy link

ijknabla commented Apr 6, 2023


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

Copy link

JonathanDagan commented Apr 13, 2023



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