Python — The swiss army knife Part 2

For a quick recap:

  • List
    • a_list = [1,2,3,4,‘hello’]
  • Tuple
    • a_tuple = (1,2,3,4,‘hello’)
  • Dictionary
    • a_dict = {‘Name’:‘Puneet’, ‘Age’:28}

A tuple is an immutable data structure while list and dictionary are mutable data structure.


Slicing a list or a tuple

Slicing and subsetting a list or a tuple is same as selecting characters from a string. For example:

a = ['my', 'name', 'is', 'anthony', 'gonsalves']
print(a[0], a[-1], a[:-1], a[1:3], sep='\n')
## my
## gonsalves
## ['my', 'name', 'is', 'anthony']
## ['name', 'is']
b = (1,2,3,4,5,6)
print (b[-1], b[2:4], sep='\n')
## 6
## (3, 4)

A list/tuple can contain many lists/tuples as in nested lists/tuples.A list can contain tuples as well as a tuple can contain many lists. Por ejemplo

nested_tuple = (1,2,3, [6,7])
nested_list = [1,2,[5,6,7],[8,9]]
print (nested_list[2], nested_list[1:3], sep='\n')
## [5, 6, 7]
## [2, [5, 6, 7]]

Iterating over a list, tuple and dictionary

Iterating over items in a list, tuple or dictionary is achieved using for loop. For example

list_of_fruits = ['orange', 'banana', 'apple', 'papaya']

for i in list_of_fruits:
    print (i)
## orange
## banana
## apple
## papaya

Similarly for tuples

tuple_of_students = ('ravi', 'jack', 'ram', 'ronald')

for i in tuple_of_students:
    print (i)
## ravi
## jack
## ram
## ronald

To iterate over a dictionary,

dict_of_fruits = {'Apple':3, 'Orange':2, 'Banana':8}

for i, j in dict_of_fruits.items():
    print (i,j)
## Apple 3
## Orange 2
## Banana 8

There are many more helpful iteration constructs which can be really fast and helpful.

Notice that whenever we write iteration constructs or control statements, we end the statement with a colon and indent the code. Indenting the code in python is forced. Without indenting, the code will throw up error. In principle, decide for one rule of indenting and follow it in all your coding statements. Indenting can be done for 1, 2 or any number of spaces or tab. Generally 4 space rule is followed. This forced indenting makes the code look cleaner and more readable.

Some helpful constructs in python

Enumerate

enumerate is helpful when you want to iterate over a sequence of list/tuple/dictionary/string such that you wish to access both the index and the item at the same time. For example

list_of_fruits = ['Apple','Orange','Banana','Grapes','Watermelon']
for i, val in enumerate(list_of_fruits):
    print (i,val)
## 0 Apple
## 1 Orange
## 2 Banana
## 3 Grapes
## 4 Watermelon

Zip

zip function is helpful when you want to simultaneously iterate over multiple lists/tuples/dictionaries

me  = [1,2,3,4]
you = [5,6,7,8,9]

for i, j in zip(me,you):
    print (i,j)
## 1 5
## 2 6
## 3 7
## 4 8

Notice that if list/tuple/dictionaries are not of same length then the smaller length is iterated

There are many functions available in python which are helpful in many ways.


a = [1,3,5,2,4]

print (len(a), min(a), max(a))
## 5 1 5

Conditional statements

if-else

a = [1,2,3,4]

for i in a:
    if i>2:
        print (i)
    else:
        print ('digit less than 2')
## digit less than 2
## digit less than 2
## 3
## 4

if-elif-else

a = [1,2,3,4,5,6,7,8,9]

for i in a:
    if i<3:
        print ('less than 3')
    elif i<6:
        print ('less than 6')
    else:
        print (i)
## less than 3
## less than 3
## less than 6
## less than 6
## less than 6
## 6
## 7
## 8
## 9

while

x = 0

while x<5:
    print (x) 
    x = x + 1
## 0
## 1
## 2
## 3
## 4

Break and Continue

Sometimes we need to stop the iteration if a condition is met and break out of the loop. Then we use break statement.

a = [10,14,15,18,19,21,25,28]
for i, val in enumerate(a):
    if i > 3:
        break
    print (val)
## 10
## 14
## 15
## 18

Sometimes during the iteration we want that if a condition is satisfied, the operation within the loop is skipped. Then we use continue statement.

a = [1,2,3,4,6,8,9,10]
for val in a:
    if val%2==0:
        continue
    print (val)
## 1
## 3
## 9

Range function

import numpy
arr = numpy.arange(10)
for i in range(len(arr)):
    print (i)
## 0
## 1
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

for i in range(0,len(a),3):
    print (a[i])
## 1
## 4
## 7
## 10
## 13
Avatar
Puneet Sharma
Research Scholar

My research interests include cloud & aerosol modeling and statistics.

Related

Next
Previous
comments powered by Disqus