
Since I wrote my first lines of code in Python, I was fascinated by its simplicity, excellent readability and its popular one-liners in particular. In the following, I want to present and explain some of these one-liners - maybe there are a few you didn't already know and are useful for your next Python project.
1. Swap two variables
# a = 1; b = 2a,b=b,a# print(a,b) >> 2 1
Let's start with a classic: swapping the values of variables by simply swapping positions on assignment - the most intuitive way in my opinion. No need to use a temporary variable. It even works with more than two variables.
2. Multiple variable assignment
a,b,*c=[1,2,3,4,5]# print(a,b,c) >> 1 2 [3, 4, 5]
Swapping variables is actually a special case of Pythons ability to assign multiple variables at once. Here you can use it to assignlist elements to the given variables, which is also calledunpacking. The*
will do packing the remaining values again, which results in a sublist forc
. It even works for every other position of*
(e.g. the beginning or middle part of the list).
3. Sum over every second element of a list
# a = [1,2,3,4,5,6]s=sum(a[1::2])# print(s) >> 12
No need for a special reduce function here,sum
just adds the items of every given iterable. Theextended slicing syntax[::]
is used here to return every second element. You can read it as[start : stop : step], so[1::2]
translates tostart with the element of index 1 (second element), don't stop until the list ends (no argument given for second parameter) and always take 2 steps.
4. Delete multiple elements
# a = [1,2,3,4,5]dela[::2]# print(a) >> [2, 4]
The extended slicing syntax can also be used to delete multiple list elements at once.
5. Read file into array of lines
c=[line.strip()forlineinopen('file.txt')]# print(c) >> ['test1', 'test2', 'test3', 'test4']
With Pythons inlinefor loop you can easily read a file into an array of lines. Thestrip()
is needed to remove the trailing line breaks. If you want to keep them or they don't matter to you, you can use an even shorter one-liner:
c=list(open('file.txt'))# print(c) >> ['test1\n', 'test2\n', 'test3\n', 'test4\n']
It's really that simple to read a file in Python. Side note: you can also use thereadlines()
method if you like.
6. Write string to file
withopen('file.txt','a')asf:f.write('hello world')# print(list(open('file.txt'))) >> ['test1\n', 'test2\n', 'test3\n', 'test4\n', 'hello world']
With the help of thewith
statement, you can directly write content to a file. Make sure to use the correctmode to open the file (here'a'
forappending content).
7. List creation
l=[('Hi'+x)forxin['Alice','Bob','Pete']]# print(l) >> ['Hi Alice', 'Hi Bob', 'Hi Pete']
Lists can be dynamically created from other lists with the inline for loop. You can directly modify the values, like string concatenation in this example.
8. List mapping
l=list(map(int,['1','2','3']))# print(l) >> [1, 2, 3]
You can also use Pythonsmap()
function to cast every list element to another type.
9. Set creation
squares={x**2forxinrange(6)ifx<4}# print(squares) >> {0, 1, 4, 9}
It's similar withsets. In addition to the inline for loop, you can even directly append a condition!
10. Palindrome check
# phrase = 'deleveled'isPalindrome=phrase==phrase[::-1]# print(isPalindrome) >> true
A palindrome is a series of characters that read the same both forwards and backwards. Normally you would need some looping and conditions to check, if a given string is a palindrome. In Python, you just compare the string with its reverse string. Instead of using the slicing operator[::-1]
, you can also use thereverse()
function to reverse the string.
Bonus: The Zen of Python
importthis
Well, this one needs no explanation. Just try it yourself by simply entering it in your Python shell 😊🎉
Wrap it up
We've seen some (admittedly simple) examples of Python one-liners, that are powerful and well readable at the same time. Maybe you know another helpful one-liner? Share it with us in the comments!
Published: 29th July 2020
Top comments(32)

- LocationPeoria, Illinois
- WorkPython Dev
- Joined
Great article, I really like the idea of the easily consumable content. I may think of how I can do something like this in my own way 😉
I am surprised that you made it through 10 one-liners with noternary statement.
>>>'Hi 'if'Bob'in['Alice','Bob','Pete']else'Goodbye''Hi'

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
My pleasure 😊
I didn't cover everything on purpose, but I totally forgot about the ternary statement 😅 So thank you for this addition! 👍🏻


- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
Good point, thank you for this clarification!
PS: For the sake of correctness: it'sreadlines()
without the underscore, isn't it?

That is great one. I want to translate it into Urdu and Hindi for my users attechlarapoint.com/bombitup-apk/. Can I please?

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
Of course, that would be great! Just provide links to the original article, my Twitter and Github.

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
Thank you for this addition. In this example I just wanted to strip both ends. To only remove the linebreaks, you have to specify the linebreak character:
c=[line.rstrip('\n')forlineinopen('file.txt')]

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
Hey there, I'm glad you like my article! You are welcome to translate it into Chinese. Please set links to the article, my dev.to profile and my Twitter profile at the beginning and let me know, when you published it ✔️

Thank you for your authorization. This is the link to the translated article. Thanks again!
mp.weixin.qq.com/s/_K40z0t_z-sSNDC...

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
Wow that was fast! 👏🏻 Thanks for the translation and credits. Can you create actual links or are you limited to only show urls as text?

The WeChat link is restricted. This should be a temporary link, which can only be accessed from WeChat. The link will become invalid after a period of time. I put the article on my blog so that everyone can check it at any time. Thank you again for your authorization.
pylixm.cc/posts/2020-08-05-10-One-...

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
I agree, this increases readability even more! Thank you. Is there any other benefit in using list comprehensions instead of the (specially made for this purpose)map()
function?

- LocationIndia
- WorkSoftware Developer
- Joined
Nice Article. 10th one is enough to explain you why people love Python so much, for doing similar thing in other languages would require you to write a numerous lines of code :)

- LocationBerlin, Germany
- EducationM.Sc. Computer Engineering
- Pronounshe/him/his
- WorkFreelancing Software Engineer
- Joined
I'm glad you like it 😊 and it's true: I love Python, because its concepts are so well thought through 👌🏻
Some comments may only be visible to logged-in visitors.Sign in to view all comments.
For further actions, you may consider blocking this person and/orreporting abuse