10 Python Shortcuts You Need To Know
HTML-код
- Опубликовано: 27 июн 2024
- 💻 Want to jumpstart your career in tech? Click the link below to match with the best programs for you and join your first coaching session. The first 1,000 people to click the link can join their free career coaching session with a Career Karma coach today: ck.chat/tech-with-tim
Welcome back to another video! In this video, I will be showing 10 useful python shortcuts! These won't be advanced shortcuts, just some python language features to save some time and lines of code. If you use python a fair amount, then this will definitely be worth your time.
⭐️ Timestamps ⭐️
00:00 | Overview
01:38 | F Strings
03:35 | Unpacking
06:07 | Multiple Assignment
07:35 | Comprehensions
10:55 | Object Multiplication
11:53 | Ternary Conditions
13:17 | Zip Function
15:22 | *args & **kwargs
18:53 | For & While Else
21:25 | Sort By Key
24:09 | BONUS
◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
💰 Courses & Merch 💰
💻 The Fundamentals of Programming w/ Python: tech-with-tim.teachable.com/p...
👕 Merchandise: teespring.com/stores/tech-wit...
🔗 Social Medias 🔗
📸 Instagram: / tech_with_tim
📱 Twitter: / techwithtimm
⭐ Discord: / discord
📝 LinkedIn: / tim-ruscica-82631b179
🌎 Website: techwithtim.net
📂 GitHub: github.com/techwithtim
🔊 Podcast: anchor.fm/tech-with-tim
🎬 My RUclips Gear 🎬
🎥 Main Camera (EOS Canon 90D): amzn.to/3cY23y9
🎥 Secondary Camera (Panasonic Lumix G7): amzn.to/3fl2iEV
📹 Main Lens (EFS 24mm f/2.8): amzn.to/2Yuol5r
🕹 Tripod: amzn.to/3hpSprv
🎤 Main Microphone (Rode NT1): amzn.to/2HrZxXc
🎤 Secondary Microphone (Synco Wireless Lapel System): amzn.to/3e07Swl
🎤 Third Microphone (Rode NTG4+): amzn.to/3oi0v8Z
☀️ Lights: amzn.to/2ApeiXr
⌨ Keyboard (Daskeyboard 4Q): amzn.to/2YpN5vm
🖱 Mouse (Logitech MX Master): amzn.to/2HsmRDN
📸 Webcam (Logitech 1080p Pro): amzn.to/2B2IXcQ
📢 Speaker (Beats Pill): amzn.to/2XYc5ef
🎧 Headphones (Bose Quiet Comfort 35): amzn.to/2MWbl3e
🌞 Lamp (BenQ E-reading Lamp): amzn.to/3e0UCr8
🌞 Secondary Lamp (BenQ Screenbar Plus): amzn.to/30Dtafi
💻 Monitor (BenQ EX2780Q): amzn.to/2HsmUPZ
💻 Monitor (LG Ultrawide 34WN750): amzn.to/3dSD7tS
🎙 Mic Boom Arm (Rode PSA 1): amzn.to/30EZw9m
🎚 Audio Interface (Focusrite Scarlet 4i4): amzn.to/2TjXsih
💸 Donations 💸
💵 One-Time Donations: www.paypal.com/donate?hosted_...
💰 Patreon: / techwithtim
◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️◼️
⭐️ Tags ⭐️
-Tech With Tim
- Shortcuts
- Unpacking
- F Strings
- Comprehensions
- Ternary Conditions
⭐️ Hashtags ⭐️
#TechWithTim #PythonShortcuts
💻 Want to jumpstart your career in tech? Click the link below to match with the best programs for you and join your first coaching session. The first 1,000 people to click the link can join their free career coaching session with a Career Karma coach today: ck.chat/tech-with-tim
Something that he left out about unpacking is that you could use * to group a section of your collection. Let's grab his example tup = (1,2,3,4,5), if we would unpack it as follow a, *b, c = tup, than a = 1, b = [2,3,4], c = 5
You can also use this to optionally assign. For example, with a, b, *c = (1, 2), a == 1, b == 2, c == []. It's pretty ugly, though.
In your example, what would determine that b = [2,3,4]? Is is because it is the MIDDLE values and 1 and 5 are the beginning and end? How would I get b to = [3,4,5] if a, *b, c = (1,2,3,4,5)?
@@yogiblak7819 Hi I know this is late but I assume that you would instead just do a, b, *c = (1,2,3,4,5), because the star automatically divides it up into the number of divisions you need
@@evanli4272 but there are 3 variables, so does it automatically assign a to first value, c to last and be to all values in between? Whatn if there were 60 elements in the list? Would b = all 48 of the values not in position 0 and and len - 1?
That's exactly (one of the things) what I was looking for. Thanks
“The first thing you need to know is the sponsor of this video”, haha
Was just about to say the same.
raid shadow legends
Smooth segue, lol!
That’s Linus levels of smooth
Hahaha so smooth. But with this high quality content I dont mind at all haha.
You are truly a legend Tim. I used to code when I was younger but lost my passion for it however now I am re-engaged to coding and your videos have been FANTASIC. Keep up the excellent quality of your teaching and videos.
Watch out when you multiply a nested list like that! All the sublists will be the same object, and changing one will change the rest
This is important. I didn’t know that. Thanks for pointing it out.
I was once debugging exactly this problem for one whole day, where I didn't understand what happens at: [[random()]*5]*5
The 2D list was containing the same values because at run-time the "random" call executes first (most inner brackets) and returns a value and then that value gets mutated, and that mutation (column) gets mutated further on. It basically mutated the pointer/reference that points to the first "random" value.
Must be really carefull when it comes to this!
@@kenny-kvibe I also had to debug this problem once. Luckily for me, it was in a relatively small program, so I could track it down somewhat quickly.
I ran into this and thought to myself...this sucks...lol
11:25 , you probably wouldn't want to do this since it uses the original list's reference to duplicate it. If you make changes to one of the nested lists the other lists will also be changed. If you do x[0][0] = 2 for example, x is now [[2,2,3],[2,2,3],[2,2,3],...] which is most likely not the desired behavior.
God bless you Tim! Thank you! From Nigeria
Long life to the nigerian fried rice, it's very tasty
Right!👍
There is no name for the multiple assignment because there is no multiple assignment here, it is still a tuple unpacking:
x, y = 1, 2
is the same as:
x, y = (1, 2)
A tuple is defined by the commas, not the brackets. Brackets are optional in tuples and used just for readability, that's why a tuple with one element has to be declared as (1,) and not (1).
Exactly right. Too bad it's not usually explained that way.
Thank you for going over list comprehension. I was so confused on how to work them and their logic. You explained it so simply and beautifully
fun fact: the "multiple assignment" syntax is actually the same as the unpacking syntax: the right side of the equation creates a tuple that is then unpacked by the left side. for instance: x, y = a, b creates a tuple (a, b) and then unpacks it into x, y
Thanks Tim! I couldn't program at all 6 months ago, and with videos like yours it really helps make coding fast and productive.
Very helpful video. Straight to the point. I watched it several times to make sure I remember each one. I am using all of them now including the bonus itertools. Thanks a lot Tim. 👍👍
EXTREMELY more helpful than I had expected !!! Thanks Tim !!
thank you so much for putting the compilation list up front.
That "bonus" one were very useful for me! Thx a lot!
Very very useful! Thank you Tim.
God this is the kind of stuff that makes me love Python. Thank you for this video! I’ve learned so much!
Thanks a lot Tim!
A very well paced and the exact level of detail for such a video. For a future version, you can maybe include the enumerate function to loop over a list while keeping track of the index (to do something every x elements - like printing a message)
args and kwargs finally make sense! Thanks Tim
This video is of extremely useful! You explain things pretty clear with great examples👍
Though I knew much of those, It was quite helpful!!!
Thanks tim!❣️
Who in their right mind gave this video thumbs down? It is brilliant. Thank you Tim you Python genius. I’ve learnt so much from your videos.
Another cool thing combining multiple assignment, * and fstring:
tup = (1, 2, 3, 4, 5)
a, *b, _, c = tup
print(f"{a = }; {b = }; {c = }")
>>> a = 1; b = [2, 3]; c = 5
_ works as a variable (usually a throwaway one).
This Video is so helpful. Thank You Tim
This channel inspires me please keep up the good work.
That bit about For / Else was very insightful to me, specifically the fact that Else: ... only gets triggered if the For ... part has completed without a *break* . Thanks for this!
Don't use this. There's a book full of reasons this is bad, not least being that even the creator regrets its inclusion in python.
Wow, I didn't know the For/While Else and other useful stuff. Thank you!
that was eye opening, thank you!
Great. Just right speed and content.
your contents are really amazing man ...Thanks !
Thank you! Good work!
Thank you Tim
That explain so much for me👍
'for & while else' and last bonus is pretty nice tips!!
“The first thing you need to know is the sponsor of this video” You got it right Tim! 🤣 You Legend! Thanks for sharing this video.
You really post a bunch it is great to see
Just started learning python, your vids help me a lot.
Thx man !!!
Hey, Tim, hey!
Thank you very much for your videos and tutorials. You make very useful content. Please give advice on what books and resources to use to study Python. I want to learn how to create bots and applications on a python. I’d really appreciate your help
Very util! Thanks!
Kind man! Thank U!
700k🎉🎉🎉🎉congratz tim
for list comprehension, or any other 'tips', its very easy to get in a habbit of trying to keep everything tight and fun and pythonic, but what should guide your behavior is the following-
find someone who has had to troubleshoot a problem in a python module while under extreme time pressure, ask them what 'pythonic' habits are very hard to understand when under extreme duress.
One of the pythonic habbits that because very hard to trouble-shoot under time pressure is list comprehensions where people have put way too much logic into a single conditional.
How much is too much? A good rule of thumb would be 'anything more than 1 conditonal'.
1 conditional is easy, why is that our limit? Because the number of times that 1 condition turns into 2, or 3, or more during refactoring... is very high.. each step/addition makes sense when it is added but when you are trying to comprehend the entire list comprehension while on the run and in a hurry, it because a huge issue.
list comprehensions are nice, just keep them very short and simple.
create additional list comprehensions if you need to keep conditionalizing them.
Make sure that the You under time pressure, or your friend or coworker, isn't in big trouble later.
great explanation of args and kwargs
I love to use kwargs for django models, makes everything so much faster to write, read and manage in case you change the model
Thanks Tim
Thank you for the video. I am grateful for your time and contribution. Kind regards, Akira.
Great tips, thanks.
hey, what happened to the audio from 11:41 to 11:44
Nothing, he just didnt say anything.
thanks for all the videos! may I ask to make some full time episodes on useful modules in python like intertools and random and much more I don't even know 😅
Looks like an awesome video and super useful! *_Also, was the first comment._*
I've been following you for quite a while, but this is the first time I recognized from your accent that you're Canadian!
Wut? He is!?
Your videos are my energy packs
great video!!! Thanks!!!!
You said "Tern-er-rary". LOL! I don't know why I find that so funny, but I do. 😂 Keep up the great work! I love your videos and how fast you fly through it without all the padding like most RUclipsrs. You get in, explain it, show an example, and move on. The way it should be! Fan for life..
awesome as usual. My bookmarks are full because of your great videos ))
pretty cool vid. thx mate
cool stuff, thanks Tim
Keep going buddy 😎👍
Multiplying a nested list causes trouble as x[0] is x[1] evaluates to True. That means if you change one, the other is changed as well
Nice I didn't know any of them except for f string
Thank You 😊 very much...
wooow ! awesome tricks and thanx for the video
Love this
Thanking Tim
What’s difference in itertools chain and list extend ?
Damn! Bro dosent even think. He just goes with the flow.
Hello Tim. Your illustrations are very good. May I use your video for my class? I teach Python also.
Useful video bro...
nice video, thx for the explaination of *args, **kwargs,
for else and while else ; this is cool, first time i see that in programmation langage
Thank you
We need some Time out with Tim!
so true
This was awesome. I consider myself an advanced python programmer yet I found valuable information in this video. Thanks a lot👍🏾
Thanks for teaching us "zip".
Is there a way to unpack an iterable with an unknown number of entries? Or is it necessary to know the number of elements before hand?
Very good 👍
excellent.
Great video!
Really helpful
אחי מה אתה עושה פה?
@@user-gn6vj2mx4v היי!
מתכנת כמוך (:
Good work💪💪
what editor are you using that runs it right out of it and puts errors on the line where they errored?
nice tricks!!
WRT the f-string segment of the video, another way of printing variables that is very often used in early python (and thus everywhere in legacy code) is the format, bracket string:
money = '$10.00'
print("We have {} left to spend".format(money))
I used to use f-strings exclusively until some of my code was getting deployed into < python 3.0 environments and causing all kinds of issues.
If you know you are deploying into a brand new, all-modern python environment then there is no issue but if you are not sure then you should seriously consider format bracket strings.
Pretty cool.
What font do you use?
Nice video Tim
Thanks for another amazing video!
I think I had an "AHA!" moment here, and I tried looking somewhere else if someone had already asked about it, but I found out I cannot even phrase it properly to render precise results in my search.
I'll try to phrase here.
Regarding the *args, if you use name, say, a list with another name besides args, you can still use the * to unpack the values exactly the same way, right?
Up till now, I was attached to the idea that *args you could only use * to unpack iterables using specifically the variable name args, which I decided to test, and it is not true.
So, is it a convention at all to use the variable name args when * unpacking with *args? Or is *args is just a way to refer to this technique of unpacking interables with *?
*How do you move your cursor one space forward without Arrow keys?*
I'm surprised that you didn't talk about enumerate(lst)
12:10 You can also write 2 > 3 and 1 or 0 and that's pretty much the same thing
Yes this works, but Python has given you the better way for the same action
@Pínned by Téch With Tím haha nice scam bot
@@user-do3pd1sk6c talking about how fake a scam bot can be
can you do ursina video
very good
so itertools chain is like a zip generator?
Great tutorials! However, it's hard to believe that One can start a 100k career from tutorials and 3 month boot camps.. So if you were to create a road map for individuals pursuing a dev job as a self taught person, what would this road map be? How likely am I to land a job assuming I did posses the necessary skills? What are dev interviewers expecting from the interviewee? What should I avoid in learning code so as not to waste my time. Much appreciated!
06:07 | Multiple Assignment I'm literally working in a python code that in some point does exactly that, awesome tip!
There is also formatted string
'Hello, {}'.format(name)
What do you think about the pydash module? Have you ever used it? Is it helpful to you? Maybe consider to make a video about that module? I think it's pretty handy ^^
I''m learning python in a uni class and I love tips like this to make me seem smarter lmao.
what editor you use?
kindly recommend
Sublime text
what software do u use to edit python
7:49 You can also do this:
x = [0] * 100
In the section on list comprehension, in printing out the dictionary example at the end I could not discern why the otput had the order (or seemngly lack of order) it did!
Could anyone explain, I'm sure I'm missing the obvious?
The dict comprehension is iterating over a set of the characters in the sentence. Sets are an unordered data structure and therefore don't preserve insertion order.