10 Python Functions That Will Simplify Your Life

Поділитися
Вставка
  • Опубліковано 24 лис 2024

КОМЕНТАРІ • 103

  • @TechWithTim
    @TechWithTim  3 місяці тому +7

    To learn programming and Python - check out Datacamp!
    💻 Learn Python - datacamp.pxf.io/PyJ9WM
    💻 Learn Programming - datacamp.pxf.io/9g4PrY

    • @fikunyinmiadebola5725
      @fikunyinmiadebola5725 3 місяці тому +1

      Hello Tim, when are you going to get back to us on the live coaching opportunity.
      P.s. I am the Nigerian kid.

    • @TechWithTim
      @TechWithTim  3 місяці тому

      @@fikunyinmiadebola5725 Hi, I am currenly reviewing applications as we speak

    • @gamingsama2
      @gamingsama2 3 місяці тому

      Will you add Arabic translation to the course in the future ?

    • @fikunyinmiadebola5725
      @fikunyinmiadebola5725 3 місяці тому

      @@TechWithTim Thanks for the reassurance

  • @AvinashSingh-kl6oz
    @AvinashSingh-kl6oz 3 місяці тому +2

    Rather than using the pprint module which does not work as good with nested lists and dictionaries, I prefer to write my own pprint function like this:
    import json
    def pprint(data: Dict[Any, Any]):
    print(json.dumps(data, indent=4))
    This gives us a lot cleaner output

  • @DrDeuteron
    @DrDeuteron 3 місяці тому +12

    the dataclass module also has astuple() and asdict() functions that are really useful when you're sending your data to another function (e.g., a plotter) that doesn't care about all the class structure. And the "field" function is great for defining what each attribute is. I use it on space craft telemetry, and you can attach ranges, alarm levels, units (ounce-inch or N-m, for example), and also LaTex r-strings for status plots. It saves soooooo much boiler plate code. Moreover, it puts all the information in static variables attached to the instance, not a module dictionary, or worse: run-time magic numbers .

  • @watchingwatches7863
    @watchingwatches7863 3 місяці тому +2

    One super useful thing for me is named tuple from collections. This allows to get an information of an tuple by using a keyword instead of an number. This way you don't have to keep in mind which index saved what. Especially useful, when you haven't worked for some time on the project

  • @kraig9
    @kraig9 2 місяці тому +1

    The default dict collection is actually really good for a factory pattern. If the class you're wanting isn't in the factory you could return a default class!

  • @usamashami11
    @usamashami11 3 місяці тому +2

    The variety of content you make says a lot about how much knowledge you have! ❤
    I start feeling fomo how can i cover so much content 😅🥺

    • @ridwanray
      @ridwanray 3 місяці тому +2

      Tim knows his stuff. I have a similar video for top 30.

  • @RickGladwin
    @RickGladwin 3 місяці тому

    `dataclass` seems like it serves a similar purpose to the `Record` class in Java (allowing for more data-oriented programming), but with slightly different built-in methods. It's interesting that `dataclass` isn't immutable by default though (you have to set `frozen=True`).
    Great video :)

  • @Andrumen01
    @Andrumen01 2 місяці тому +1

    3:38, never ever use "pickle" unless you are running in a safe and contained space (e.g., a remote Docker container). Since "pickle" loads python objects, it can be used to run malicious scripts! Try to find/create your own (safer!) serialization methods!

  • @ridwanray
    @ridwanray 3 місяці тому +1

    Good job, Tim.
    I created something similar, but for top 30.

  • @softwareengineer8923
    @softwareengineer8923 3 місяці тому

    Useful content as usual, thanks 👍

  • @multigladiator384
    @multigladiator384 3 місяці тому +1

    16:50 yes!!! decorators are great stuff. there are many many more in standard python. moreover, if you use modules like flask and stuff. you will also see this concept in java environment e.g if you use spring boot for you application server. Imagine you would have check, if the user sending an incoming request is legit, has certain roles, ...you can do this stuff with decorators (code defined in one place!) instead of duplicating code in the beginning of these endpoints

    • @ridwanray
      @ridwanray 3 місяці тому +2

      Absolutely correct. I have something similar top 30.

  • @chrisogonas
    @chrisogonas 3 місяці тому +1

    Awesome! Thanks for sharing.

  • @cloudzero2049
    @cloudzero2049 3 місяці тому +1

    Thanks for the video. :)

  • @jlawless1984
    @jlawless1984 3 місяці тому +1

    Good stuff, thank you.

  • @peterkahofficial
    @peterkahofficial 3 місяці тому +2

    Hey Tim, thanks for the video! Can you make a video about the new FastHTML framework? It looks really promising!

  • @dimox115x9
    @dimox115x9 3 місяці тому +1

    Nice video, thank you very much :)

  • @mint9121
    @mint9121 3 місяці тому +2

    Thanks for the video. My fav was counter()!

    • @ridwanray
      @ridwanray 3 місяці тому

      I created something similar, but for top 30

  • @multigladiator384
    @multigladiator384 3 місяці тому +1

    Good video my man

  • @selvanm2872
    @selvanm2872 3 місяці тому +2

    hai i from india in tamilnadu

  • @multigladiator384
    @multigladiator384 3 місяці тому +1

    14:20 yea man itertools, now we get to the stuff I am talking about in my previous comment

  • @multigladiator384
    @multigladiator384 3 місяці тому +2

    1:55 i use the standard get method for this on dicts... You can pass the value as argument to the get-function, which will be returned, if the key does not exist, e.g false, empty strings..very useful in condition clauses /control structures and moreover in higher concepts (syntactic sugar ) like list- and dict comprehensions, where you can use if-structures as well.
    Imagine you want to list compehend some values from multiple dict elements, which are in a list and share the same key mapping to the desired value in each one...
    vals = [val["someKey"] for val in myDict if val.get("someKey",False)!=False]
    now imagine these val["someKey"] are strings and you do not want the empty strings in your final vals list:
    vals = [val["someKey"] for val in myDict if val.get("someKey",'').strip()!='']
    Of course, you can first cast them to str or whatever, if the type is any because of the nature of this dynamically typed programming language

    • @DrDeuteron
      @DrDeuteron 3 місяці тому +2

      "is not False"
      "!= False" is unpythonic,
      But since the default is None:
      val.get("someKey") is not None
      is preferred, unless None is an expected value ofc.

    • @multigladiator384
      @multigladiator384 3 місяці тому

      @@DrDeuteron You are correct

    • @DrDeuteron
      @DrDeuteron 3 місяці тому

      @@multigladiator384 Other languages!
      🤢🤢🤮

  • @Rickety3263
    @Rickety3263 3 місяці тому +3

    7:31 or if its a set you can use “if “apple” in strings”

  • @kapibara2440
    @kapibara2440 3 місяці тому

    Very useful!

  • @eboyd53
    @eboyd53 3 місяці тому +2

    Q: you stated "wb" and "rb" is "write bytes" and "read bytes" in my many years of data analysis I always stated "binary" where you state "bytes"; the question is where did you find that it means "bytes"?

    • @Borszczuk
      @Borszczuk 3 місяці тому

      Correct, "b" stands for binary, not bytes. He was just wrong (or never read the manual :-)

    • @neckbro
      @neckbro 3 місяці тому

      You can call APIs -- Awesome programming interface. It doesn't matter how you call it as long as you know what it is doing and how to work with it.

    • @Borszczuk
      @Borszczuk 3 місяці тому

      @@neckbro This is not a "poem analysis class" where you can have as many interpretations as pupils in the class. And no, you cannot call it as you like, esp. if you teach others incorrectly.

    • @malsi1504
      @malsi1504 3 місяці тому

      ​@@Borszczuk If I learned API stands for awesome pizza inspector, which is the guy who defined rules that enable applications to communicate, and it must be used to request data or services. if I learn that a GUI is a gorgeous unicorn interface which is a type of user interface that uses visual elements to interact with a computer, and it uses windows, icons, menus, and pointers to interact with the user, if I recall that an IP Address is an incredible pizza address which is a unique numerical label assigned to each device connected to a computer network, and it must be unique and follow a specific format ...
      You might notice that I have completely incorrect descriptions of terms. But in programming... Notice how the parts that are correct are the only parts that NEED to be. If you have these wrong you create programming errors.
      It's better not to be wrong about what you teach. But it's like teaching a historical artifact. You teach what it was, what it meant, how it was used, when it was used. But imagine the label was completely wrong. That's most things we learn in history. Often we don't correctly know what the label was when it was used. Sometimes we only know if it's existence thru translation. Sometimes the labels or language used is so different from the one I'm teaching in, their label uses sounds and meanings that we don't have in English, so instead we will probably give it a romanized label and forever forward refer to that thing with that label. Completely changing the original "name" of the object. The fact that it simply doesn't change why it was used when it was used how it wasrd how old is it what does that mean for the advancement of that culture, etc.... none of that important stuff changes. We just have the label wrong.

  • @ded_linux
    @ded_linux 3 місяці тому +1

    ❤❤❤❤ cool funcs thanks Tim

  • @DrDeuteron
    @DrDeuteron 3 місяці тому +1

    I don't think enumerate returns an index, as evidenced by the "start=" keyword..rather it provides a count. Useful for managing matplotlib subplots, for example.

    • @ridwanray
      @ridwanray 3 місяці тому +1

      It does return index.

  • @Jody_Halliday
    @Jody_Halliday 3 місяці тому +5

    Great job, thank you!
    🧡

  • @hackedbyBLAGH
    @hackedbyBLAGH 3 місяці тому +1

    Thank you

  • @mlguy8376
    @mlguy8376 3 місяці тому +1

    Try unpacking a pickled class with out a class definition available (for whatever reason)

  • @diegomerino9939
    @diegomerino9939 2 місяці тому

    Many thanks for your videos.
    I would like to know the name of the font you are using.

  • @rydmerlin
    @rydmerlin 3 місяці тому +1

    Try pprint with your defauldict

  • @gurpreetchahal
    @gurpreetchahal 3 місяці тому +1

    I want your advice Sir i am a QA engineer manual and automation, in future there will be no job for QA , should i switch to Developer? please help i am confused

    • @DrDeuteron
      @DrDeuteron 3 місяці тому +1

      idk, I make satellites, and we got QA all up in our business,

    • @RickGladwin
      @RickGladwin 3 місяці тому +1

      I think there will still be a use for QA in the future, though QA will have more and more to do with testing things that can't be automated, that require a human's evaluation.
      If there is a requirement in the spec that says "this button should be visible if the user is logged in", that's something that can be automated and doesn't belong to QA. If there is a requirement that says "a user should be easily able to find their transaction history", that's something that can't be automated and needs a QA tester.
      If you are worried, I would recommend looking for those parts of QA that are in increasing demand, like evaluating user interfaces based on visual impairments and other disabilities, and always increasing your skills and expertise.
      Good luck!

  • @nephxio
    @nephxio 3 місяці тому

    Would it be accurate to think of a dataclass as like a struct with a little extra functionality from other languages like C++?

  • @multigladiator384
    @multigladiator384 3 місяці тому

    12:28 yes, list- and dict comprehension are great syntactic sugar. but be aware, that there are cases where a simple for loop will outperform it, instead of doing multiple (lets' say 4) list/dict comprehensions on one and the same list/dict object you can do all the operations in one explicit for loop (1n vs 4n speaking from complexity pov - yes this in in theorie stil in the scope of just n but in reality it can matter if there are thousands of elements in the underlying list, dict)

    • @DrDeuteron
      @DrDeuteron 3 місяці тому

      performance over clarity? wt_?

    • @multigladiator384
      @multigladiator384 3 місяці тому

      @@DrDeuteron I have to disagree here!
      In many cases, it is important!
      You may also put it as Usability/User-Experience over code-clarity?
      Every half-decent (classically taught) programmer will be able to read a for loop.. Thus, I do not see the clarity enhancement here really but the performance advantages. As I said: If you have lists with thousands of objects or whatever, it will be a difference of multiple seconds until the server responds.
      In most cases of applications servers you have customers/users, that want a relatively "fast" experience and not wait multiple seconds because backend pythonists like to use comprehensions everywhere..

    • @multigladiator384
      @multigladiator384 3 місяці тому

      @@DrDeuteron In that regards I do not give a fuck if you call my code "pythonic". It is performant and user-friendly and still readable for every half-decent programmer... This "pythonic" shit is most of the time ideological and not applicable in reality where you have a webapplication, with thousands of users, that do not want to wait 5 seconds on every third request or what

    • @multigladiator384
      @multigladiator384 3 місяці тому

      @@DrDeuteron For the context: I work in a data warehouse and build analysis tools, often big amounts of data are queried and this "pythonic" way takes way moooore time compared to a simple for loop over the data

    • @multigladiator384
      @multigladiator384 3 місяці тому

      And me personally would use Spring Boot instead of flask but it is how it is and I am glad to have ajob :D

  • @Acanis87
    @Acanis87 2 місяці тому

    pickle, hmmm... Used that to store cookies but it might be way more useful than I thought...
    Is it a good practice to save and load ui settings with that m
    I have a Config class that stores everything and iam writing settings.json files so far.
    I could just use pickle and spare a lot of time, huh?!

  • @multigladiator384
    @multigladiator384 3 місяці тому +2

    8:02 "all" function should be mentioned in this context, too. "any" and "all" are really useful.

    • @multigladiator384
      @multigladiator384 3 місяці тому +1

      8:35 okay, you just mentioned "all" function .. I am sorry i have commented too early here..

    • @DrDeuteron
      @DrDeuteron 3 місяці тому +1

      is any()'s evaluation short-circuited?

    • @multigladiator384
      @multigladiator384 3 місяці тому

      @@DrDeuteron the first "True" will end the logical OR ("any" function) since the whole expression evaluates to True. No need for further evaluations in contrast to the logical AND ("all" function), which requires each single expression to be True so the complete expression evaluates to True. You know that

    • @ridwanray
      @ridwanray 3 місяці тому +1

      Yes. I have for top 30

  • @Beanbag59
    @Beanbag59 3 місяці тому

    I’m a year into coding I can make small projects but like I wanna make really complex things what does chat or Tim recommend

  • @DrDeuteron
    @DrDeuteron 3 місяці тому

    I'm stuck at 3.8 for security, and dataclass is available.

  • @marcincuprjak1005
    @marcincuprjak1005 3 місяці тому +3

    not sure if that appeared in the comments, but there is one tricky case: `all` called with the empty iterable returns True, which may be unexpected: `all([]) -> True`

  • @riccardomenoli5185
    @riccardomenoli5185 3 місяці тому

    I'm wondering how dataclass works with pydantic. They have the same syntax

  • @marcinziajkowski3870
    @marcinziajkowski3870 3 місяці тому

    4:42 what if class is not defined before load object from pickle file ?

  • @qwerty11111122
    @qwerty11111122 2 місяці тому

    Chain is orthogonal to zip?

  • @marjoncajocon4219
    @marjoncajocon4219 3 місяці тому

    I thought dataclasses is from python 3.0, im using python 3.7 and dataclasses is available by default

  • @itznukeey
    @itznukeey 2 місяці тому

    Note that pickle is unsafe - do not load any pickles you don't trust because they can execute arbitrary code

  • @omniu
    @omniu 2 місяці тому

    What is your theme?

  • @marcinziajkowski3870
    @marcinziajkowski3870 3 місяці тому

    3:24 {3,2,1} ? Why not {1,1,1} ?

  • @toancdu
    @toancdu 3 місяці тому

    I have an error when run program, when I input the Video, then choose folder for download, but it shows:" HTTP error 400: bad request", Please help me why?

  • @ethiogazeta
    @ethiogazeta 3 місяці тому +1

    1St

  • @alucard555
    @alucard555 3 місяці тому

    Can anyone help me with Data structures, where do I start

  • @Larimuss
    @Larimuss 3 місяці тому +1

    Can you please do a new tutorial with more advanced python? 😅😊

    • @ridwanray
      @ridwanray 3 місяці тому

      Sure. Project based

  • @HRamazanoVv
    @HRamazanoVv 3 місяці тому

    1 min ago is 😛😛😛😛😛😛😛

  • @neckbro
    @neckbro 3 місяці тому +10

    Thumps down again for this video! Why are you not sharing the code or a notebook so we can experiment ourselves instead of trying to write everything from start? That means you are just after few more clicks on your channel or feeling to important to bother with it, or most probably both.

    • @TechWithTim
      @TechWithTim  3 місяці тому +5

      Sorry I didn’t know you wanted that! Next time !

    • @colton3507
      @colton3507 3 місяці тому +5

      Lol don't listen to neckbros

    • @neckbro
      @neckbro 3 місяці тому

      @@TechWithTim Yeah, it doesn't have to be pretty, even a dump on a txt file would work

    • @neckbro
      @neckbro 3 місяці тому +5

      @@colton3507 My comment is more useful to him than 100x "thank you so much" comments. It helps to practice how to deal with criticism even when famous

    • @DrDeuteron
      @DrDeuteron 3 місяці тому +6

      bro: you gotta do the work yourself to learn it. No one got strong being spoon fed pushed peas.