Concise_form

one liner for loop

Instead of:

1
2
3
4
5
6
>>> m = []
>>> for i in range(10):
...     m.append(i)
... 
>>> m
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

do

1
2
3
4
>>> [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> {"index"+str(i): i*2 for i in range(3)}
{'index0': 0, 'index1': 2, 'index2': 4}

one liner condition

Instead of:

1
2
3
4
5
6
7
8
>>> done = False
>>> if done:
...     a =1
... else:
...     a =2
... 
>>> a
2

do

1
2
3
>>> a = 1 if done else 2
>>> a
2

one liner condition plus for loop

Instead of:

1
2
3
4
5
6
7
>>> l = []
>>> for i in range(10):
...     if i%2 == 0:
...             l.append(i*2)
... 
>>> l
[0, 4, 8, 12, 16]

do

1
2
3
4
>>> [i*2 for i in range(10) if i%2 ==0]
[0, 4, 8, 12, 16]
>> {"index"+str(i): i*2 for i in range(10) if i%2 ==0}
{'index0': 0, 'index2': 4, 'index4': 8, 'index6': 12, 'index8': 16}

enumerate automatically for indexing

Instead of:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
>>> count = 0
>>> l = [1,2,3,4]
>>> for data in l:
...     if count == 2:
...             data += 1
...     l[count]=data
...     count += 1
... 
>>> l
[1, 2, 4, 4]

do

1
2
3
4
5
6
7
8
>>> l = [1,2,3,4]
>>> for index, data in enumerate(l):
...     if index == 2:
...             data += 1
...     l[index] = data
... 
>>> l
[1, 2, 4, 4]

Zip to loop together

Instead of:

1
2
3
4
5
6
7
8
9
>>> name = ["a", "b", "c"]
>>> number = [1,2,3]
>>> d = []
>>> d= {}
>>> for i in range(3):
...     d[name[i]] = number[i]
... 
>>> d
{'a': 1, 'b': 2, 'c': 3}

do

1
2
3
4
5
>>> for n, b in zip(name, number):
...     d[n] = b
... 
>>> d
{'a': 1, 'b': 2, 'c': 3}

reverse & reversed

Instead of

1
2
3
4
5
6
7
8
>>> number
[1, 2, 3]
>>> _number = []
>>> for i in range(len(number)):
...     _number.append(number[-1-i])
... 
>>> _number
[3, 2, 1]

do

1
2
3
4
>>> _number
[3, 2, 1]
>>> [_number[-1-i] for i in range(len(_number))]
[1, 2, 3]

or

1
2
3
4
5
>>> _number
[1, 2, 3]
>>> _number.reverse()
>>> _number
[3, 2, 1]

or

1
2
3
4
>>> _number
[1, 2, 3]
>>> [i for i in reversed(_number)]
[3, 2, 1]

slice operator

The slice operator in Python is a powerful feature that allows you to extract a range of elements from a sequence (such as a list, tuple or string). The syntax for the slice operator is [start:stop:step], where start is the index of the first element to be included, stop is the index of the first element to be excluded, and step is the distance between each element to be included.

1
2
3
4
>>> number
[1, 2, 3]
>>> number[::-1]
[3, 2, 1]

If start is not specified, it defaults to 0, and if stop is not specified, it defaults to the length of the sequence. If step is not specified, it defaults to 1. By using a negative value for step, you can extract elements from the sequence in reverse order.

Using the slice operator, you can easily manipulate and extract data from sequences without the need for more complex loops and conditional statements.