ALL Python Programmers Should Know This!!

⭐ Join the Byte Club to practice your Python skills! ($2.99/mo): / @b001
🐦 Follow me on Twitter: / b001io
This quick demonstration shows you how powerful Python's filter() function can be!
Background Music:
a night full of you by ikkun (ex. Barradeen) | / ikkunwastaken
Music promoted by www.free-stock-music.com
Creative Commons Attribution-ShareAlike 3.0 Unported
creativecommons.org/licenses/...

Пікірлер: 961

  • @b001
    @b001 Жыл бұрын

    Correction: 1 is not prime. My is_prime function is flawed!

  • @JimMaz

    @JimMaz

    Жыл бұрын

    You've made a b001 of yourself

  • @damian4601

    @damian4601

    Жыл бұрын

    just make nums range(2,1000) to exclude 1 instead of making 999 num!=1 comparison

  • @careca_3201

    @careca_3201

    Жыл бұрын

    @@damian4601 or just add another condition, because you might want to use 1 in a non prime numbers list

  • @thefredster55

    @thefredster55

    Жыл бұрын

    Couldn't you just set nums equal to 1000 instead of range(1,1000) since you're passing it into a range in the function? (Genuine question, literal n00b here)

  • @Killercam1225

    @Killercam1225

    Жыл бұрын

    @@thefredster55 Nope, because it creates an array of numbers in that given range. So the function iterates through each number in the list and and the filter function creates an object, which then he passes the object through the [list] method which puts all of the values contained in that object into a [list] where the output can be comprehended.

  • @boredd9410
    @boredd9410 Жыл бұрын

    Minor thing, but you can make the prime checking function faster by going up to floor(sqrt(n)) instead.

  • @slammy333

    @slammy333

    Жыл бұрын

    Could make it even faster by only iterating over odd numbers as well

  • @programmertheory

    @programmertheory

    Жыл бұрын

    def is_prime(x): if x return False if x

  • @darkfireguy

    @darkfireguy

    Жыл бұрын

    ​@@slammy333 you can make it even faster by only checking n-1 and n+1 where n is each multiple of 6

  • @sidneydriscoll5579

    @sidneydriscoll5579

    Жыл бұрын

    def isPrime(x): if x == 1: return False if x == 2: return False if x == 3: return True if x == 4: return False This is what you call fast!

  • @FuzioN2006

    @FuzioN2006

    Жыл бұрын

    Why is a youtube comment thread more productive than my work team... FML

  • @foxerity
    @foxerity Жыл бұрын

    my man actually made the least efficient function in the history of functions

  • @chervilious

    @chervilious

    Жыл бұрын

    Not only that, it's also wrong

  • @chemma9240

    @chemma9240

    8 ай бұрын

    😂

  • @rkidy

    @rkidy

    7 ай бұрын

    Crazy that when doing a demonstration you focus on ease of understanding the concept rather than efficient of an algorithm unrelated to what he is demonstrating 🤯🤯🤯

  • @fruitguy407

    @fruitguy407

    7 ай бұрын

    False, I can and do write worse code with more flaws. You're welcome.

  • @ImThatGuy000

    @ImThatGuy000

    6 ай бұрын

    im new to python, could you explain why?

  • @philfernandez835
    @philfernandez835 Жыл бұрын

    primes = [x for x in range(2, 1000) if isPrime(x)]

  • @krakenzback7971

    @krakenzback7971

    Жыл бұрын

    yeah cuz 1 is not prime

  • @BookOfSaints

    @BookOfSaints

    Жыл бұрын

    I think his point is to use list comprehension which is the better choice here.

  • @krakenzback7971

    @krakenzback7971

    Жыл бұрын

    @@BookOfSaints yeah this is list comprehension

  • @BeasenBear

    @BeasenBear

    10 ай бұрын

    It says "isprime" or "Prime" is not defined when I tried this code. What did I miss?

  • @ItzMeKarizma

    @ItzMeKarizma

    7 ай бұрын

    @@BeasenBear kinda late but he's calling a function called isPrime and you probably didn't define that function (I don't know if it's supposed to be imported or written by yourself, I use C++).

  • @aciddev_
    @aciddev_ Жыл бұрын

    "all python programers should know this: pep-8" when

  • @yujielee

    @yujielee

    Жыл бұрын

    💀💀💀

  • @feDUP1337

    @feDUP1337

    Жыл бұрын

    So damn true

  • @Cristobal512

    @Cristobal512

    Жыл бұрын

    What is that?

  • @vorpal22

    @vorpal22

    Жыл бұрын

    @@Cristobal512 PEP-8 consists of the Python recommended standards and best practices.

  • @user-cg1ul8bh8w

    @user-cg1ul8bh8w

    7 ай бұрын

    Pep8 is just for jealous and mean programmers..... It just unreadable

  • @back2710
    @back2710 Жыл бұрын

    For those concerned for its complexity, remember you can always use sieve of eratosthenes in most cases, this only would be required in case of big numbers

  • @nagyzoli

    @nagyzoli

    11 ай бұрын

    Sieve works for any number, and it is the most optimal way of generating sequences of primes.

  • @rutabega306
    @rutabega306 Жыл бұрын

    Okay that time complexity tho

  • @TheG7

    @TheG7

    Жыл бұрын

    Ikr, it would’ve help to use the root of num but still

  • @moy92

    @moy92

    Жыл бұрын

    newbie here, how would you improve? i thought list comprehensions but dont know ways improve on time complexity

  • @rogerab1792

    @rogerab1792

    Жыл бұрын

    ​@@moy92 memoization

  • @rutabega306

    @rutabega306

    Жыл бұрын

    @moy92 There are a few ways you can reduce the time complexity because the one in the video is so suboptimal (quadratic time) You can bring it down to O(Nsqrt(N)) by just checking for factors below the square root. But since we are already collecting a list of primes, we can use some kind of sieve algorithm (look up Sieve of Eratosthones on wikipedia). This will be O(NloglogN) or even less depending on the algorithm.

  • @TheG7

    @TheG7

    Жыл бұрын

    you don't even need if statements to find prime numbers

  • @brianhull2407
    @brianhull24077 ай бұрын

    A better is_prime function would be: def is_prime(num): if num == 1 or num == 0: return False for x in range(2, floor(sqrt(num))): if num % n == 0: return False return True This does three things. First, it factors in the fact that 1 is not prime. (It’s neither prime nor composite.) Second, it accounts for the fact that 0 isn’t prime either (as 0 is highly composite, having literally every integer as a factor). And third, it increases the speed of the function since it only needs to go to the square root of the number. This works because every composite number has at least one factor that is greater than 1 and less than or equal to its square root. Indeed, given any integer x such that x > 1, for every factor _a_ of x that is less than √x, there is exactly one other factor _b_ of x that is greater than √x such that _a_ × _b_ = x. (For 1, it has exactly one factor (itself), and its lone factor is also its square root. For 0, it has infinite factors (everything), but its square root (itself) is less than all other whole numbers.) Incidentally, if num is less than 2, then both range(2, num) and range(2, floor(sqrt(num))) will return an empty iterable that will cause the body of the for loop to never be executed. As such, any value for num that is less than 2 will return True for the original version of is_prime, and any value for num that is less than 0, between 0 and 1, or between 1 and 2 will return True for my version of is_prime. We could add a check for nonintegers: if num != floor(num): return False However, that isn’t strictly necessary, since the input should be an integer, and in Python, we assume the developer would not put a fraction into the function. And it’s not like the code would throw an error in such a case, anyways. The better question is with regards to negative numbers. There are four ways to consider this. First, we could just assume that the developer would never input a negative number. This is fine… unless we’re getting input from a user, in which case either the developer or the function should do a check. The second way is to treat all negative numbers as composite on the grounds that they each have at least three factors: 1, itself, and −1 (where we only include −1 as a factor if the number itself is negative), and prime numbers must have exactly 2. In that case, our first conditional would instead be: if num == 1 or num

  • @tyrigrut

    @tyrigrut

    7 ай бұрын

    As a mathematician, #3 and #4 are the correct options here. Either you're working over positive integers, in which case you should throw an exception if negative, or you are working over all integers, which you can use the general definition of a prime element over a commutative ring: p is prime if p is non zero, p is not a unit (here a unit is 1 or -1), and if p=a*b for a and b integers then either p divides a or p divides b. You can see based on this definition that 6 is not a prime: 6=2*3 but 6 does not divide 2 or 3 evenly (i.e. 2/6 and 3/6 are not integers). Similarly for (-6)=(-2)*3, so -6 is not prime. And for positive primes p, we must have p=(±1)*(±p), and p divides ±p. Similarly, -p=(∓1)*(±p), and -p divides ±p. So p is prime is equivalent to saying -p is prime. Notice that over all integers, all primes p have 4 factors: 1, -1, p, -p. It is incorrect to assume all primes have 2 factors, otherwise the only primes over the integers would be 1 and -1.

  • @brianhull2407

    @brianhull2407

    7 ай бұрын

    @@tyrigrut Thank you for your input! I was unaware of how primes work under anything other than nonnegative integers, so I wasn’t aware of the “four factor” definition. I figured there probably _was_ something, though. That said, it is worth noting that, in computing, we don’t always want perfect mathematical accuracy. Sometimes, we prefer speed over accuracy.

  • @tree_addict280

    @tree_addict280

    23 күн бұрын

    but its almost as if when trying to explain a topic you use the most relative and easy things to understand.

  • @Boltkiller96

    @Boltkiller96

    4 сағат бұрын

    you wrote the whole documentation for this function hats off!

  • @AndrewMycol
    @AndrewMycol Жыл бұрын

    Even as a junior web developer, I really like how you do these shorts. It concisely and simply explains whats going on in the shorts.

  • @b001

    @b001

    Жыл бұрын

    Thanks so much! Glad you enjoy!

  • @originalbinaryhustler3876

    @originalbinaryhustler3876

    Жыл бұрын

    ​@@b001 keep these shorts coming ❤❤❤❤

  • @prouddesk6577

    @prouddesk6577

    7 ай бұрын

    His code is horrible. I am sorry but dont watch this guy.

  • @ubiabrail6773
    @ubiabrail6773 Жыл бұрын

    Sieve of Eratosthenes is much better for this , but only if u need nums from 1 sieve works with O(n) in spite of this which works withO(n*sqrt(n))

  • @vorpal22

    @vorpal22

    Жыл бұрын

    Doesn't this actually run in O(n^2) since for a prime number, he's checking up to n-1 instead of sqrt(n)? Agreed that Sieve of Eratosthenes is the way to go, and it's a really easy algorithm to understand.

  • @user-zn6gn2oq5i

    @user-zn6gn2oq5i

    Ай бұрын

    ​@@vorpal22 yes

  • @Siirxe
    @Siirxe Жыл бұрын

    You can also do primes = [i for i in list(nums) if is_prime(i)]

  • @kazzaaz

    @kazzaaz

    Жыл бұрын

    this is the way it should be done

  • @danielf5393

    @danielf5393

    Жыл бұрын

    You don’t need to cast to list (and you shouldn’t if nums is a long generator)

  • @kazzaaz

    @kazzaaz

    Жыл бұрын

    ​@@danielf5393 For long inputs or generators, another generator also outperforms map/filter pipeline. gen = (i for i in list(nums) if is_prime(i)) for x in gen: print(x)

  • @danielf5393

    @danielf5393

    Жыл бұрын

    @@kazzaaz hence prime_generator = ( i for i in nums if is_prime(i) ) I’m complaining about “list(nums)” specifically.

  • @hrocxvid

    @hrocxvid

    Жыл бұрын

    This was the first thing I thought of

  • @reef2005
    @reef2005 Жыл бұрын

    For a relatively large number, the isprime func will take a long time to return true or false. Instead of checking every integer

  • @alexwhitewood6480

    @alexwhitewood6480

    Жыл бұрын

    Previous primes upto square root of nums*

  • @reef2005

    @reef2005

    Жыл бұрын

    @@alexwhitewood6480 yes indeed

  • @salvatorearpino9243
    @salvatorearpino9243 Жыл бұрын

    I usually prefer the list comprehension method instead of filter ie: [n for n in nums if is_prime(n)]

  • @arjundureja

    @arjundureja

    Жыл бұрын

    List comprehension is also faster since. you don't need to convert it back to a list

  • @salvatorearpino9243

    @salvatorearpino9243

    Жыл бұрын

    @@codeman99-dev timing performance was pretty similar between the two methods. When you check out the disassembled python bytecode (using the dis module), list comprehension has more operations with the python interpreter, so it will most likely not be preferable for code that uses multiple threads (it's more susceptible to global interpreter lock slowing it down)

  • @vorpal22

    @vorpal22

    Жыл бұрын

    List comprehensions are faster, and in this case, a generator would be even better. Both map and filter are discouraged in Python 3.

  • @user-tx3pv1xl6g
    @user-tx3pv1xl6g2 ай бұрын

    so if you had a list from 1 to 1000... *proceeds to show a list from 1 to 999

  • @rohakdebnath8985
    @rohakdebnath898510 ай бұрын

    Sieve of Eratostenes where you take a vector bool of all trues, then you start a loop from i²(i = 2 to √N) and flag all the multiples in the vector. The position of the trues left in the vector are all the prime numbers till N. This is simpler shorter and well known.

  • @uselessschmuck190
    @uselessschmuck190 Жыл бұрын

    Dude makes me wanna get programing socks and learn python

  • @KillToGame
    @KillToGame Жыл бұрын

    scientists: use powerful computers to find new primes me: types infinity intead of 1000

  • @Tomyb15
    @Tomyb15 Жыл бұрын

    I would use a generator function to generate a (possibly infinite) sequence of primes by keeping a record of all previously found primes and checking if the next number is divisible by any of those (that should all be smaller than the number) in order. Uses a tiny bit more memory but cuts down on a lot of division operations.

  • @jaserogers997

    @jaserogers997

    Жыл бұрын

    Using a sieve (if you had an upper limit) would be faster than that.

  • @plaskut

    @plaskut

    8 ай бұрын

    generator with sieve

  • @OMGclueless

    @OMGclueless

    5 ай бұрын

    @@plaskut It's possible to make an infinite generator with a sieve but it's actually pretty complicated. The sieve by default marks all multiples of a prime the first time you encounter that prime, which is impossible if the generator is infinite. Instead you'd need to suspend and then resume the markings later as you advance through the generator, which is possible but pretty tricky to get right.

  • @plaskut

    @plaskut

    5 ай бұрын

    @@OMGclueless I think I might try doing this. I believe it's a divergent function, so at some point it might have to check to see if the universe has ended yet.

  • @BeasenBear
    @BeasenBear10 ай бұрын

    I tried your code and it worked! I'll check your channel for more!

  • @stareSimulVelCadere
    @stareSimulVelCadere3 ай бұрын

    getting more and more declarative, love it

  • @wiccanwanderer82
    @wiccanwanderer82 Жыл бұрын

    You only need to check if it's divisible by smaller primes.

  • @alpacalord507

    @alpacalord507

    Жыл бұрын

    But than you need to have a list with primes, so this does not really help

  • @thesnakednake

    @thesnakednake

    Жыл бұрын

    @@alpacalord507 You can build the list as you go; if you let the is_prime function take the existing prime list into account, you can just append new primes you find until you reach the end of the range. However, you can only do this when you’re making the list in order from 2 like this, since you wouldn’t have all the prior primes otherwise

  • @alpacalord507

    @alpacalord507

    Жыл бұрын

    @@thesnakednake And? That's still not solving the problem of checking if a number is prime. You're making a list of primes now, which does not (really) help us checking if a number is prime.

  • @dfsgjlgsdklgjnmsidrg

    @dfsgjlgsdklgjnmsidrg

    Жыл бұрын

    @@alpacalord507 u stupid but your profilpic is meliodas so im not mad

  • @thesnakednake

    @thesnakednake

    Жыл бұрын

    @@alpacalord507 The task in the video is to make a list of the primes from 1 to 1000, not just to check if a number is prime. The function that checks it in this video is a means to an end, not the end goal

  • @AWriterWandering
    @AWriterWandering Жыл бұрын

    Alternatively, you can use a conditional within a list comprehension: [ n for n in nums if is_prime(n) ]

  • @HussamHadi

    @HussamHadi

    Жыл бұрын

    This is the correct pythonic way of solving it. Avoid using filter whenever possible

  • @e1ke1k96

    @e1ke1k96

    Жыл бұрын

    Or even : [n for n in nums if n%2==0]

  • @nullopt5174

    @nullopt5174

    Жыл бұрын

    @@e1ke1k96 that’s not how you define a prime number.

  • @patrickcuster2348

    @patrickcuster2348

    Жыл бұрын

    The tradeoff is that a list comprehension is going to store the whole list in memory while filter keeps it as a generator until needed. Both are pythonic and have their uses

  • @AWriterWandering

    @AWriterWandering

    Жыл бұрын

    @@patrickcuster2348 yes, but in the video he used to list function, so a list was the intended output anyway.

  • @DeepFriedOreoOffline
    @DeepFriedOreoOffline Жыл бұрын

    This is really awesome! I was making a program the other day and I kept getting a similar return to the one you show at the end there and had no idea what was going on! Life saver!

  • @newgamingchannel6805
    @newgamingchannel6805 Жыл бұрын

    Thank you. I love your channel

  • @user-th2cp8uh8r
    @user-th2cp8uh8r Жыл бұрын

    I must admit that I'm a little mad that this didn't show up when I needed it but this tips are very cool and informative!

  • @user-yj3mf1dk7b

    @user-yj3mf1dk7b

    Жыл бұрын

    open book

  • @newsjuice7404
    @newsjuice7404 Жыл бұрын

    I love python even more bcoz of you. You are absolutely amazing thanks & keep uploading such clips

  • @vorpal22

    @vorpal22

    Жыл бұрын

    He's not teaching you modern Python practices. You should not use filter and map in Python 3.

  • @TheSkepticSkwerl
    @TheSkepticSkwerl Жыл бұрын

    This also 100% explains why functions are amazing. Return is better than break.

  • @sinterkaastosti988
    @sinterkaastosti98818 күн бұрын

    primes=[ n for n in range(2, 1000) if all(n%x for x in range(2, int(n**0.5))) ]

  • @davesharp5472
    @davesharp5472 Жыл бұрын

    Props to you for making videos where you know that 90% of the comments will be “well actually….” Or some other form of telling you how you are wrong and should have done it their way.

  • @davesharp5472

    @davesharp5472

    Жыл бұрын

    ​@Harrod Thou Thanks for chiming in. Id say its more ironic you dont view comments like "Thanks for teaching job applicants to not format their code properly and also use a less readable alternative of list comprehensions." as negative. I'm offering support to b001 and props for sticking his neck out there. This field particularly is filled with people who love nothing more than to correct people, not too dissimilar to your response to me. See Stack Overflow for example. Have a good day.

  • @zhairewelch8291

    @zhairewelch8291

    Жыл бұрын

    @Harrod Thou the neg comments are there, it just doesn’t take up 90% of the comment section.

  • @Pharisaeus

    @Pharisaeus

    Жыл бұрын

    Not sure if it's such a great idea. I personally always report such videos, eg. as "misinformation" and choose for them to not be recommended any more.

  • @zackm2299
    @zackm2299 Жыл бұрын

    I had to code that in assembly once

  • @Jakku_Azzo

    @Jakku_Azzo

    Жыл бұрын

    Had to code it in brain fuck the other day *cracks knuckles* R/iamverysmart

  • @revenevan11
    @revenevan11 Жыл бұрын

    I'm just learning python, thanks for showing me the filter function!

  • @xgorntv
    @xgorntvАй бұрын

    thanks for the tips!

  • @zay1649
    @zay1649 Жыл бұрын

    bro what is that vscode theme its so nice

  • @hezztia

    @hezztia

    Жыл бұрын

    It's "SynthWave '84" from Robb Owen. It has an option (called "neon dreams") that makes the letters glowy, but i don't use it because i don't like it.

  • @Matias-rx1wk

    @Matias-rx1wk

    Жыл бұрын

    @@hezztiafont?

  • @lordfirespeed
    @lordfirespeed Жыл бұрын

    Nice demo of filter(). In reality one should use the Eratosthenes' sieve to obtain large lists of primes in python

  • @Rugg-qk4pl

    @Rugg-qk4pl

    Жыл бұрын

    In double reality one should download a large list of primes

  • @GordieGii

    @GordieGii

    Жыл бұрын

    Is that because it takes less time, less ram, fewer lines of code, or is easier to understand?

  • @Rugg-qk4pl

    @Rugg-qk4pl

    Жыл бұрын

    @@GordieGii Sieve is going to be significantly faster, but more lines of code. Not sure on the memory usage. But as long as it's clear you are implementing the sieve, difficulty to understand shouldn't be an issue.

  • @GordieGii

    @GordieGii

    Жыл бұрын

    @@Rugg-qk4pl That makes sense. The original video said that one objective was to save memory. Since range is an itterable, it only produces the next number and returns it to filter so the list only ever contains the primes. To do Eratosthenes' sieve you need to have all the numbers in the list and then prune them. I suppose you would only need a bool or a bit for each number, but then you would need bit handling routines. Probably already libraries for that sort of thing.

  • @gingeral253
    @gingeral25310 ай бұрын

    You can also remove checks by going up to the square root of the value because anything past that would a repeat of something already checked.

  • @1ur_br0th3r
    @1ur_br0th3r2 ай бұрын

    Like it’s the same as: primes = [num for num in nums if isPrime(num)]

  • @tpd_
    @tpd_ Жыл бұрын

    Print(list(filter(list(map(lambda x: x is not any([x%y==0 for y un range (2,x)]), [i for i in range (1000)])))))

  • @RayTracingX

    @RayTracingX

    7 ай бұрын

    Imao😮

  • @heoungminkim1108

    @heoungminkim1108

    Ай бұрын

    Bro, You are truly pythonic. :)

  • @Rando2101

    @Rando2101

    Ай бұрын

    Imagine changing x%y==0 to (not x%y) tho

  • @bl4z3_kanazaki
    @bl4z3_kanazaki Жыл бұрын

    Sheesh nice trick my friend!!

  • @Nikhil-Tomar
    @Nikhil-Tomar Жыл бұрын

    You could also use primes = [x for x in nums if is_prime(x)]

  • @75424ht
    @75424ht11 ай бұрын

    Thanks man you're the best!

  • @FirstnameLastname-rl4qi
    @FirstnameLastname-rl4qi Жыл бұрын

    Could be more efficient, when checking for a prime you only have to check for factos up too the square root of the number, so if you square root the high end of the range it should work faster!

  • @mhmd_old7
    @mhmd_old7 Жыл бұрын

    Map function easier?

  • @tinahalder8416

    @tinahalder8416

    Жыл бұрын

    I was also thinking the same

  • @tvpremieratozseries173
    @tvpremieratozseries173Ай бұрын

    Thanks for helping

  • @Alpheamus
    @Alpheamus Жыл бұрын

    What python extension do you use in vscode? It's more colorful than mine and I'm jealous!

  • @Lurkartiist
    @Lurkartiist Жыл бұрын

    I want to learn to code but it’s intimidating tbh . I’m no genius . Not gonna let that stop me from going for it though 💯

  • @AbdulRehman-rf2cc

    @AbdulRehman-rf2cc

    Жыл бұрын

    less gooo

  • @bonquaviusdingle5720

    @bonquaviusdingle5720

    11 ай бұрын

    it has a steep learning curve in the beginning but gets very easy, like learning to drive a car

  • @AndoroidP
    @AndoroidP Жыл бұрын

    Just use Sieve of Eratosthenes, get better time complexity of O(nloglogn)

  • @SegFaultMatt

    @SegFaultMatt

    Жыл бұрын

    That’s the way I’d do it. Much better than this method, sad your only upvote is me.

  • @NathanSMS26

    @NathanSMS26

    Жыл бұрын

    The prime thing was just an example to show off the filter function

  • @jackomeme

    @jackomeme

    Жыл бұрын

    Combine that with memorization, you can reduce the big O

  • @Rando2101

    @Rando2101

    Ай бұрын

    ​@@jackomeme I'm late, but how? I can't really see it

  • @richardchurchill5181
    @richardchurchill5181 Жыл бұрын

    You do not need to check numbers from 2 to num. No divisor of greater than the square root of num needs to be checked if you check those less than that square root.

  • @RazeVX
    @RazeVX Жыл бұрын

    Love to see a beginner friendly version of this codeing practice because I know how it looks after generations of programmer optimized the shit out of it in countless different languages since primes are essential for cryptography 😅

  • @eck1997rock
    @eck1997rock Жыл бұрын

    Thanks for teaching job applicants to not format their code properly and also use a less readable alternative of list comprehensions.

  • @archigan1

    @archigan1

    Жыл бұрын

    beat me to it

  • @kaniran1

    @kaniran1

    Жыл бұрын

    Was looking for the list comprehension answer :-D

  • @johnr3936

    @johnr3936

    Жыл бұрын

    Actually terrible way to write python. Do you think its just bait? I would not merge that

  • @the_lava_wielder6996

    @the_lava_wielder6996

    Жыл бұрын

    Bro you guys unironically code in python it doesn't matter anyways

  • @eck1997rock

    @eck1997rock

    Жыл бұрын

    What should we use sensei?

  • @unknownman6978
    @unknownman6978 Жыл бұрын

    we have all of the prime numbers 1, 2, 3 💀💀

  • @-sn4k3-94

    @-sn4k3-94

    Жыл бұрын

    It’s prime, what’s wrong?

  • @finnyass1407

    @finnyass1407

    Жыл бұрын

    @@-sn4k3-94 1 isn’t a prime number tho

  • @asi3136

    @asi3136

    9 ай бұрын

    ​@@finnyass1407argument of semantics, it's generally not considered a prime but the arguments are vibes

  • @natelance6713
    @natelance67137 ай бұрын

    If you're going to immediately turn it back into a list, don't use filter, use a list comprehension because it's faster. If you only need an iterator, then use filter.

  • @soumilbinhani8803
    @soumilbinhani880311 ай бұрын

    hey you can make this is_prime() function a bit more efficient by keeping x in the range(2,sqrt(num)+1) and keep an exception if-else for the number 1 hope that helps

  • @asdanjer
    @asdanjer Жыл бұрын

    People using pandas: 😂🤣

  • @schlopping
    @schlopping Жыл бұрын

    Great example of what the filter class does, but when converting to other datatypes you should use that specific class's comprehension. Example: print([number for number in range(1000) if is_prime(number)])

  • @davidmachado132
    @davidmachado132 Жыл бұрын

    Wow, that one was very helpful

  • @llollercoaster
    @llollercoaster Жыл бұрын

    Beautiful exponential time complexity

  • @7268896

    @7268896

    Жыл бұрын

    It's quadratic, not exponential

  • @llollercoaster

    @llollercoaster

    Жыл бұрын

    @@7268896 good catch. you're right

  • @tubefile100
    @tubefile100 Жыл бұрын

    Pythons freedom to not declare variables and data types makes me appreciate Java.

  • @tinahalder8416

    @tinahalder8416

    Жыл бұрын

    Huuhhh? Ur word confuses me wise man

  • @eazyg885

    @eazyg885

    Жыл бұрын

    @@tinahalder8416 in Java you have to specify the type of a variable when declaring it (String, int, char) which cannot be changed afterwards, while in Python the type of a variable is dynamic (i.e. it changes based on the input). This makes it easier to make mistakes if you’re not paying enough attention

  • @gJonii

    @gJonii

    Жыл бұрын

    @@eazyg885 Python has type hints though. You can get some of the benefits of statically typed languages from having them present. But yeah, lack of proper static typing support, and lack of immutability as an option, are to me the two biggest weaknesses in the language. Third weakness kinda being the dependency management.

  • @gurugasch
    @gurugaschАй бұрын

    You should explain why Python returns a filter object. Does it have to do with lazy evaluation?

  • @Jakku_Azzo
    @Jakku_Azzo Жыл бұрын

    He said, “Able Prize here I come”😂🔥

  • @Luther_Luffeigh
    @Luther_Luffeigh Жыл бұрын

    Please don’t stop making shorts, your shorts content is the best I have seen 🙌🏽

  • @roiqk

    @roiqk

    Жыл бұрын

    Then you have seen nothing

  • @marcelchukwuma9655
    @marcelchukwuma9655 Жыл бұрын

    Using list comprehension for this would be more pythonic

  • @wintur2856

    @wintur2856

    11 ай бұрын

    I hate list comphrensions

  • @Rando2101

    @Rando2101

    Ай бұрын

    ​@@wintur2856seems like changing programming language is the best option for you.

  • @ethannguyen2551
    @ethannguyen2551 Жыл бұрын

    You check if it's divisible by every number up to it, but you really only need to check the previous prime numbers, since if it's divisible by a non-prime, it will also be divisible by its prime factorization.

  • @Xiaika
    @Xiaika Жыл бұрын

    You can massively improve performance of finding primes by searching between 2 and sqrt(n) since if we have two integers x and y such that n = x*y then it’s not possible for both x and y to be greater than the sqrt(n).

  • @ayecaptainjack6930
    @ayecaptainjack6930 Жыл бұрын

    If you wanna use filter, go back to JavaScript! Pythonic would be, to use a list comprehension.

  • @GoofyGoober6694
    @GoofyGoober6694 Жыл бұрын

    🤓*snorts* actually, you should have set the range to 1,1001 to print out the entire 1000 numbers instead of 999

  • @GoofyGoober6694

    @GoofyGoober6694

    Жыл бұрын

    @@MCRuCr it's ironic

  • @MCRuCr

    @MCRuCr

    Жыл бұрын

    @@GoofyGoober6694 ok my bad its hard to tell.. there are just so many people complaining about his method of prime computation when in fact it is about the python language instead of a specific problem you can solve with it

  • @thedeegan
    @thedeegan Жыл бұрын

    range is non inclusive, so it gives you a list of numbers between 1-999.

  • @malachiflannery9093
    @malachiflannery9093Ай бұрын

    very new to any programming, but i’ve seen a lot of the comments refer to this small program here as “quadratic time” i understand this refers to the time to completion of the program relative to the number of elements being processed. however, i do not understand which lines of the code are actually affecting whether the program is linear, quadratic, etc. if anyone is willing to help digest the concept with me, i’d greatly appreciate it. thanks!

  • @maximebeauchemin2100
    @maximebeauchemin2100 Жыл бұрын

    This is terribly inefficient lol. You should just Calculate all the prime numbers ahead of time instead of calling this function for every number. Even with that slow function it'd be O(n^2) instead of O(n^3)

  • @b001

    @b001

    Жыл бұрын

    Thanks for the feedback! You're totally right, but the main point of the video was to show what the filter function does.

  • @maximebeauchemin2100

    @maximebeauchemin2100

    Жыл бұрын

    @@b001 fair enough

  • @aroop818

    @aroop818

    Жыл бұрын

    Hi mate, I am new to Python. Could you please explain how we can calculate primes ahead of time? Like applying modulo to the list of numbers of a specific range then appending them to a list and printing it? Please correct me if I’m wrong

  • @CreateCG1
    @CreateCG1 Жыл бұрын

    I am mew to python and u are helping a lot! Thanks

  • @nobodyofconsequence6522
    @nobodyofconsequence6522Ай бұрын

    personally I'd use a list comprehension myself primes = [num for num in range(0,1000) if is_prime(num)] print(primes)

  • @zakzak24
    @zakzak24 Жыл бұрын

    wow filter function is a time saver, before I used to go for the slower solution : for num in nums: if is_prime(num): print(nums[num]) else: continue ty for the vid🎉

  • @SolathPrime
    @SolathPrime Жыл бұрын

    you can do the same function but better cause if you know that every prime number can be written in the form of 6n + 1 or 6n - 1 except the multiples of prime numbers: 2, 3, 5, 7, 11 where n is a natural number

  • @josgibbons6777
    @josgibbons677711 ай бұрын

    With the Sieve of Eratosthenes, you don't judge each number like that: you create a list of bools you update to eliminate multiples of whatever's still prime. It's more efficient.

  • @wz8881
    @wz8881 Жыл бұрын

    What VS Code color theme is this? I love it!

  • @mr.monopoly2784
    @mr.monopoly2784 Жыл бұрын

    What font do you use?

  • @davideducation
    @davideducation16 күн бұрын

    Quick one how do you record verticals like these? Which screen recording app?

  • @rubenvanderark4960
    @rubenvanderark49607 ай бұрын

    ``` from math import floor, sqrt def is_prime(x): if x==1: return False for i in range(floor(sqrt(x)): if x%i == 0: return False return True ```

  • @Rando2101

    @Rando2101

    Ай бұрын

    The range should be range(2, floor(sqrt(x))+1) tho

  • @mathadventuress
    @mathadventuress7 ай бұрын

    Hey this is awesome thanks

  • @loganselner521
    @loganselner521 Жыл бұрын

    The Pucci table

  • @johannbauer2863
    @johannbauer2863 Жыл бұрын

    if you want to have a list of primes, use a sieve (e.g. sieve or erasthostenes or atkin) instead of this

  • @BlackLightning0Games
    @BlackLightning0Games9 ай бұрын

    Make the range go to the sqrt(num) instead of num, because that is the max you can go without the smallest and largest of the multiples switching. To check is 49 is prime, you only have to check up to 7 because 7*7 = 49 This changes from o(n) to o(sqrt(n)) If you can do this it will save you on at least one coding interview.

  • @ghostcheetokill
    @ghostcheetokill Жыл бұрын

    Can you please tell me what app you use ( i am pretty sure it’s vs code, correct me if i’m wrong ) and extensions/themes if you use any

  • @Rushabh3d
    @Rushabh3d Жыл бұрын

    Wonderful bro !!!

  • @Cristobal512
    @Cristobal512 Жыл бұрын

    This is so much easier to do in R.

  • @mr.luciddream6634
    @mr.luciddream66343 ай бұрын

    You could make it faster by defining a set where primes are stored and with each number check if it's a multiple of a prime in the set instead of the range [2,x). If it's not a multiple of 2 it ain't a multiple of 4 or 6.

  • @user-ns3js2ji4z
    @user-ns3js2ji4z Жыл бұрын

    The function is_prim can run til square of num to check if the number is prim😊

  • @genalkali1779
    @genalkali1779 Жыл бұрын

    if you want primes in a certain range it is faster to use the Sieve of Eratosthenes (look it up) it is actually really easy

  • @TarasZakharchenko
    @TarasZakharchenko Жыл бұрын

    Python dev meets functional programming for the first time :-D

  • @KejriwalBhakt
    @KejriwalBhakt4 ай бұрын

    Sieve of Erathnoses. Thats the algorithm you use in production grade solutions

  • @PabloEscobarmitzvah
    @PabloEscobarmitzvah10 ай бұрын

    Good to check the potential factors twice to ensure we can display a nice "Loading..." screen 😊but in case you're looking for efficiency you could start by checking up to sqrt(n), because I'm pretty sure a*b = b*a for integers so if one of the factors is > sqrt(N), the other will for sure have to be below sqrt(N) and we can stop the primality check. I think you'd better show the use of a library rather than careless "tricks"

  • @sahilstories4377
    @sahilstories437716 күн бұрын

    in one line prime_obj = [ a for a in range(1, 1000) if a%3==0] print(prime_obj)

  • @thesuperrancher9684
    @thesuperrancher96843 ай бұрын

    This is a problem I was literally working on today. I saw a really similar solution on stack overflow

  • @reminderIknows
    @reminderIknows9 күн бұрын

    primes = list(filter(lambda x: len([i for i in range(2, x) if x % i == 0]) == 0, range(2, 1000)))

  • @Yupppi
    @Yupppi9 ай бұрын

    This is really nice, but you can't save shorts to your playlists so you'd have a library of useful tips and methods.

  • @oreoforlife720
    @oreoforlife7204 ай бұрын

    Alternative way that is much easier to remember: condition list comprehension

  • @JohannVF
    @JohannVFАй бұрын

    Noob question, but where is the value/argument for "num" being provided?

  • @t.gmultiplex2838
    @t.gmultiplex28382 ай бұрын

    At every line for a sec I thought he missed; then remembered oh yeah it's python 🤣😂

  • @IThinkItsMe
    @IThinkItsMe3 ай бұрын

    Thanks for this. Can I cast it to a set or tuple and get the same output? :-)

  • @hi_beemo1808
    @hi_beemo1808 Жыл бұрын

    @b001 what editor are you using?

  • @Sch8ill

    @Sch8ill

    Жыл бұрын

    he is using vscode

  • @1Richmar
    @1Richmar Жыл бұрын

    pretty cool. You could also do list comprehensions which is native to the language. I believe it's the fastest native way to do this. Not sure though, as I'm a beginner in python lol