27
Python List Comprehensions
Hello readers, welcome to python article which involves handling python list comprehensions.
A list is a python data type that contains mutable elements enclosed within square brackets.
The elements contained may be of different data types or even other lists.
A list is a python data type that contains mutable elements enclosed within square brackets.
The elements contained may be of different data types or even other lists.
L = [123,'abc',[99,100],1.38]
Print(L[2][1])
Why are list comprehensions preferred?
Built-in List Functions
For example
Average = sum(L)/len(L)
Creating Lists
Apart from the explicit declaration of lists just like in the first example above, we can input a list using the keyboard or accept it as a piped input from another program.
List_1 = eval(input(‘Enter a list’))
Print(‘The first element is : ‘, L[0])
We can as well obtain lists through conversion of other data types as shown below;
Tuples
tuple_a =('abc',456,3.14,'mary')
list(tuple_a)
Output
['abc', 456, 3.14, 'mary']
Sets
set_a = {1,'efg',9.8}
list(set_a)
Output
[1, 'efg', 9.8]
Dictionaries
For a dictionary we can get the key, value and items separately
For a dictionary we can get the key, value and items separately
# Create the dictionary d
d = {'A':404, 'B':911}
# Generates the keys of d
list(d)
# Generate values
list(d.values())
# Generate items – key – value pairs
list(d.items())
Output
['A', 'B']
[404, 911]
[('A', 404), ('B', 911)]
Comprehensions
Using list comprehensions is a faster and a very powerful way to create lists with predefined conditions.
Declaration is done using square brackets but in this case, instead of assigning intrinsic values, a condition is given to produce a matching output just like the set builder notation in mathematics.
Using list comprehensions is a faster and a very powerful way to create lists with predefined conditions.
Declaration is done using square brackets but in this case, instead of assigning intrinsic values, a condition is given to produce a matching output just like the set builder notation in mathematics.
syntax
newlist = [expression for item in iterable if condition == True]
The condition only accepts the items that valuate to True.
The condition is however optional and can be omitted.
A few examples are as shown;
The condition is however optional and can be omitted.
A few examples are as shown;
L = [i for i in range(5)]
Print(L)
Output
[0,1,2,3,4]
To print a number of a certain type e.g ten zeros
[0 for i in range(10)]
Output
[0,0,0,0,0,0,0,0,0,0]
To print squares of numbers within a specified range
[i**2 for i in range(1,8)]
Output
[1,4,9,16,25,36,49]
To multiply elements of a list by a constant.
L = [2,4,9,4,61]
[i*10 for i in L]
Output
[20, 40, 90, 40, 610]
Duplicating string characters
string = 'Hello World'
[c*2 for c in string]
Output
['HH', 'ee', 'll', 'll', 'oo', ' ', 'WW', 'oo', 'rr', 'll', 'dd']
w = ['one', 'two', 'three', 'four', 'five', 'six']
[m[0] for m in w]
Output
['n', 'w', 'h', 'o', 'i', 'i']
You can also use control structures within a list comprehension to save time and efficiency of program as shown;
L = [2,4,9,4,61]
[i for i in L if i>5]
Output
[9, 61]
w = ['one', 'two', 'three', 'four', 'five', 'six']
[m[1] for m in w if len(m)==3]
Output
['n', 'w', 'i']
To conclude:
List comprehensions can accomplish complex tasks without using an overly complicated code and the good part is that you can do all that in one line.
List comprehensions can accomplish complex tasks without using an overly complicated code and the good part is that you can do all that in one line.
27