7

18 Python one-liners that will speed up your coding process.

 2 years ago
source link: https://dev.to/yash_makan/18-python-one-liners-that-will-speed-up-your-coding-process-21md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Hi folks, I am Yash Makan and in today's blog, we are going to talk about one-liners in python. I clearly remember when I chose to learn python it was just because of the simplicity and readability. But you know what you can make the python code even more easy with less lines of code. Yup! thats right my friend. These one-liner code can save you a lot of time, memory and can impress your friends...

https://media3.giphy.com/media/Bvo7iDxInexT0oCHgg/giphy.gif?cid=ecf05e47oy9b0df2af0v2j9pw2tpnog57mkdyzdd42he0y6s&rid=giphy.gif&ct=g

what is a one-liner code?

You can think of one-liner code as a block of code compressed together so that it fits inside one line. It is the concise, useful programs packed in just one single line.

why do I need them?

So if you are not a big fan of writing one-liners or you are just curious that why do I have to know these then below are some pretty convincing topics.

  • Understanding One-liners will make a python expert as you will get a much better understanding of the language.
  • This will help you to write the code faster. You can write the piece of code much faster than others which will help you in competitive programming.
  • On-liners will improve your basics and roots of programming as they strengthen your basics.
  • You will write the code more in a pythonic way. Generally, people who come from different languages often write code in an un-pythonic way in python for example they don't use list comprehension, multiple assignments, and slicing etc.
  • You can impress your friends, colleagues and you can give a good impression in your interview if you have a good grasp of one-liners.

But also it can be a little hard as well. Imagine programming as chess. You know the basics is like knowing what is variables, loops, conditions, data structures, classes but learning the master movies and creating your own strategy is like one-liners. In the beginning, it can be hard and quite overwhelming but once you get to know them. You can achieve greatness and win matches faster than a lot of other players. Everything has a price to pay my friend...

Basics

1. If-else

Before

if 3 < 2:
    var=21
else:
    var=42
Enter fullscreen modeExit fullscreen mode

After

var = 21 if 3<2 else 42
Enter fullscreen modeExit fullscreen mode

2. Elif

Before

>>> x = 42
>>> if x > 42:
>>>     print("no")
>>> elif x == 42:
>>>     print("yes")
>>> else:
>>>     print("maybe")
yes
Enter fullscreen modeExit fullscreen mode

After

>>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe")
yes
Enter fullscreen modeExit fullscreen mode

3. If without else

Before

condition = True

if condition:
    print('hi')
Enter fullscreen modeExit fullscreen mode

After

if condition: print('hello')
print('hello') if condition else None
Enter fullscreen modeExit fullscreen mode

4. Function

Before

def f(x):
    return "hello "+ x
Enter fullscreen modeExit fullscreen mode

After

f = lambda x: "hello "+ x
f = exec("def f(x):\n    return 'hello '+ x")
Enter fullscreen modeExit fullscreen mode

5. Loop

Before

squares = []
for i in range(10):
    squares.append(i**2)
Enter fullscreen modeExit fullscreen mode

After

squares=[i**2 for i in range(10)]
Enter fullscreen modeExit fullscreen mode

6. Loop with If

Before

squares = []
for i in range(10):
    if i%2==0:
        squares.append(i**2)
Enter fullscreen modeExit fullscreen mode

After

squares = [i**2 for i in range(10) if i%2==0]
Enter fullscreen modeExit fullscreen mode

7. Loop with if else

Before

squares = []
for i in range(10):
    if i%2==0:
        squares.append(i**2)
    else:
        squares.append(False)
Enter fullscreen modeExit fullscreen mode

After

squares = [i**2 if i%2==0 else False for i in range(10)]
Enter fullscreen modeExit fullscreen mode

8. While Loop with if else

Before

c=0
while c < 10:
    if c!=5:
        print(c)
    else:
        print("FIVE")
    c+=1
Enter fullscreen modeExit fullscreen mode

After

while c < 10: c+=1; print(c) if c!=5 else print("FIVE")
Enter fullscreen modeExit fullscreen mode

9. swap variables

Before

>>> def swap(x,y):
    x = x ^ y
    y = x ^ y
    x = x ^ y
    return x, y
>>> swap(10,20)
(20,10)
Enter fullscreen modeExit fullscreen mode

After

>>> x, y = 10, 20
>>> x, y = y, x
(20, 10)
Enter fullscreen modeExit fullscreen mode

10. Multiple Assignment

Before

a="ONE"
b=2
c=3.001
Enter fullscreen modeExit fullscreen mode

After

a, b, c = "One", 2, 3.001
Enter fullscreen modeExit fullscreen mode

11. Write String In File

Before

text = "Helllloooooo"
fileName = "hello.txt"
f=open(fileName, "a")
f.write(text)
f.close()
Enter fullscreen modeExit fullscreen mode

After

text = "Helllloooooo"
fileName = "hello.txt"
print(text, file=open(fileName, 'a'))
Enter fullscreen modeExit fullscreen mode

12.Quicksort

Before

# Source - https://stackabuse.com/quicksort-in-python/

def partition(array, start, end):
    pivot = array[start]
    low = start + 1
    high = end

    while True:
        while low <= high and array[high] >= pivot:
            high = high - 1

        while low <= high and array[low] <= pivot:
            low = low + 1

        if low <= high:
            array[low], array[high] = array[high], array[low]
        else:
            break

    array[start], array[high] = array[high], array[start]

    return high

def quick_sort(array, start, end):
    if start >= end:
        return

    p = partition(array, start, end)
    quick_sort(array, start, p-1)
    quick_sort(array, p+1, end)

array = [29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]

quick_sort(array, 0, len(array) - 1)
print(array)
Enter fullscreen modeExit fullscreen mode

After

array = [29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]
q = lambda l: q([x for x in l[1:] if x <= l[0]]) + [l[0]] + q([x for x in l if x > l[0]]) if l else []
print(q(array))
Enter fullscreen modeExit fullscreen mode

13. Fibonacci

Before

def fib(x):
    if x <= 2:
        return 1
    return fib(x - 1) + fib(x - 2)
Enter fullscreen modeExit fullscreen mode

After

fib=lambda x: x if x<=1 else fib(x-1) + fib(x-2)
Enter fullscreen modeExit fullscreen mode

14. HTTP Server

Before

import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()
Enter fullscreen modeExit fullscreen mode

After

python -m http.server 8000
Enter fullscreen modeExit fullscreen mode

15. Nested For Loops

Before

iter1 = [1, 2, 3, 4]
iter2 = ['a', 'b', 'c']
for x in iter1:
    for y in iter2:
        print(x, y)
Enter fullscreen modeExit fullscreen mode

After

[print(x, y) for x in iter1 for y in iter2]
Enter fullscreen modeExit fullscreen mode

16. Print Without Newline

Before

for i in range(1,5):
    print(i, end=" ")
Enter fullscreen modeExit fullscreen mode

After

print(*range(1,5))
Enter fullscreen modeExit fullscreen mode

17. Class

Before

class School(): 
    fun = {}
Enter fullscreen modeExit fullscreen mode

After

School = type('School', (object,), {'fun':{}})
Enter fullscreen modeExit fullscreen mode

18. Walrus:= (Python 3.8)

Before

command = input("> ")
while command != "quit":
    print("You entered:", command)
Enter fullscreen modeExit fullscreen mode

After

while (command := input("> ")) != "quit": print("You entered:", command)
Enter fullscreen modeExit fullscreen mode

Conclusion

So now you have some understanding of python one-liners and this will help to speed up your coding process. I hope that you've learnt something new from this article as I myself get to know some cool tricks and one-liners that I didn't know earlier. If this is the case with you as well then do click the heart button when increases my motivation(1 like = 1 good karma). Also, share the post with your friends so that they too can learn something new(don't be selfish...). Hope to be in your mind again, till then b-bye!

https://media4.giphy.com/media/w89ak63KNl0nJl80ig/giphy.gif?cid=ecf05e478g5vv310sx1w5035xnuj17tgxbdtlcpcvas5fsoj&rid=giphy.gif&ct=g

Other Articles

Socials


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK