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.

L = [123,'abc',[99,100],1.38]
Print(L[2][1])

Why are list comprehensions preferred?

  • List comprehensions can be used for mapping and filtering hence eliminating the need to use a different approach for each scenario.
  • They can be used to rewrite loops and map() calls.

Built-in List Functions

  • len – Returns the number of items in the list.
  • sum - Returns the sum of items in the list.
  • min - Returns the minimum of items in the list.
  • max - Returns the maximum of items in the list.
  • append – appends a passed object into an existing list.
  • Count - Returns the number of times an object/item appears in a list.
  • extends - appends the sequence contents to the list.

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

# 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.

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;

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.

19

This website collects cookies to deliver better user experience