day2/cheatsheet2.tex
author Prabhu Ramachandran <prabhu@aero.iitb.ac.in>
Mon, 21 Jun 2010 00:49:03 -0400
branchscipy2010
changeset 412 ca04d463c573
parent 330 46533051b9d3
permissions -rw-r--r--
ENH: Enhanced the problem set building on the image handing and arrays. Illustrated dtypes, casting and their importance along with an example using RGBA images. Also introduce edge detection.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     1
\documentclass[12pt]{article}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     2
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     3
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     4
\title{Python: Data Structures}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     5
\author{FOSSEE}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     6
\usepackage{listings}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     7
\lstset{language=Python,
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     8
    basicstyle=\ttfamily,
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
     9
commentstyle=\itshape\bfseries, 
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    10
showstringspaces=false
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    11
}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    12
\newcommand{\typ}[1]{\lstinline{#1}}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    13
\usepackage[english]{babel}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    14
\usepackage[latin1]{inputenc}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    15
\usepackage{times}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    16
\usepackage[T1]{fontenc}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    17
\usepackage{ae,aecompl}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    18
\usepackage{mathpazo,courier,euler}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    19
\usepackage[scaled=.95]{helvet}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    20
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    21
\begin{document}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    22
\date{}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    23
\vspace{-1in}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    24
\begin{center}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    25
\LARGE{Python: Data Structures}\\
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    26
\large{FOSSEE}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    27
\end{center}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    28
\section{Basic Looping}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    29
\subsection{\typ{while}}
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    30
  \begin{lstlisting}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    31
In []: a, b = 0, 1
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    32
In []: while b < 10:  
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    33
  ...:     print b,
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    34
  ...:     a, b = b, a + b # Fibonacci Sequence
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    35
  ...:
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    36
\end{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    37
Basic syntax of \typ{while} loop is:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    38
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    39
while condition:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    40
    statement1
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    41
    statement2
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    42
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
    43
All statements are executed, till the condition statement evaluates to True.
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    44
\subsection{\typ{for} and \typ{range}}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    45
\typ{range(start, stop, step)}\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    46
returns a list containing an arithmetic progression of integers.\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    47
Of the arguments mentioned above, both start and step are optional.\\
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
    48
For example, if we skip third argument, i.e \typ{step}, default is taken as 1. So:
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    49
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    50
In []: range(1,10)
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    51
Out[]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    52
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    53
\textbf{Note:} stop value is not included in the list.\\
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
    54
Similarly if we don't pass \typ{first} argument (in this case \typ{start}), default is taken to be 0.
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    55
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    56
In []: range(10)
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    57
Out[]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    58
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
    59
In case third argument is mentioned(\typ{step}), the jump between consecutive members of the list would be equal to that.
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    60
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    61
In []: range(1,10,2)
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    62
Out[]: [1, 3, 5, 7, 9]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    63
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    64
%Notice the jump between two consecutive elements is 2, i.e step.\\
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    65
\typ{for} and \typ{range}\\
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    66
As mentioned previously \typ{for} in Python is used to iterate through the list members. So \typ{for} and \typ{range} can be used together to iterate through required series. For example to get square of all numbers less then 5 and greater then equal to 0, code can be written as:
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    67
\begin{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    68
In []: for i in range(5):
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    69
 ....:     print i, i * i
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    70
 ....:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    71
 ....:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    72
0 0
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    73
1 1
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    74
2 4
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    75
3 9
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    76
4 16
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    77
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    78
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    79
\section{list}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    80
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    81
In []: num = [1, 2, 3, 4] # Initializing a list
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    82
In []: num
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    83
Out[]: [1, 2, 3, 4]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    84
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    85
\subsection{Accessing individual elements}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    86
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    87
In []: num[1]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    88
Out[]: 2  
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    89
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    90
\textbf{Note:} Index of list starts from 0.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    91
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    92
In []: num[5]  # ERROR: throws a index error
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    93
IndexError: list index out of range
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    94
In []: num[-1]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    95
Out[]: 4
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
    96
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
    97
\textbf{Note: }\typ{-1} points to last element in a list. Similarly to access third last element of a list one can use: 
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    98
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
    99
In []: num[-3]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   100
Out[]: 2  
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   101
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
   102
\subsection{\typ{list} operations}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   103
\begin{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
   104
In []: num += [9, 10, 11] # Concatenating two lists
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   105
In []: num
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   106
Out[]: [1, 2, 3, 4, 9, 10, 11]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   107
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   108
\typ{list} provides \typ{append} function to append objects at the end. 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   109
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   110
In []: num = [1, 2, 3, 4] 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   111
In []: num.append(-2) 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   112
In []: num
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   113
Out[]: [1, 2, 3, 4, -2]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   114
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   115
%% In []: num += [-5] 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   116
%% In []: num
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   117
%% Out[]: [1, 2, 3, 4, -2, -5]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   118
Working of \typ{append} is different from \typ{+} operator on list. Till here both will behave as same. But in following case:
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   119
\begin{lstlisting}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   120
In []: num = [1, 2, 3, 4]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   121
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   122
In []: num + [9, 10, 11]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   123
Out[]: [1, 2, 3, 4, 9, 10, 11]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   124
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   125
In []: num.append([9, 10, 11]) # appending a list to a list
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   126
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   127
In []: num
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   128
Out[]: [1, 2, 3, 4, [9, 10, 11]] # last element is a list
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   129
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   130
when one attempts to append a list(in above case [9, 10, 11]) to a list(num) it adds list as a single element. So the resulting list will have a element which itself is a list. But \typ{+} operator would simply add the elements of second list.\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   131
\subsection{Miscellaneous}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   132
\begin{lstlisting}
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   133
In []: num = [1, 2, 3, 4]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   134
In []: num.extend([5, 6, 7])  # extend list by adding elements
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   135
In []: num
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   136
Out[]: [1, 2, 3, 4, 5, 6, 7]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   137
In []: num.reverse()  # reverse the current list
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   138
In []: num
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   139
Out[]: [7, 6, 5, 4, 3, 2, 1]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   140
In []: num.remove(6) # removing first occurrence of 6
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   141
In []: num
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   142
Out[]: [7, 5, 4, 3, 2, 1]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   143
In []: len(num) # returns the length of list
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   144
Out[]: 6
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   145
In []: a = [1, 5, 3, 7, -2, 4]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   146
In []: min(a) # returns smallest item in a list.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   147
Out[]: -2
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   148
In []: max(a) # returns largest item in a list.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   149
Out[]: 7
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   150
\end{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   151
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   152
\subsection{Slicing} 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   153
General syntax for getting slice out of a list is \\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   154
\typ{list[initial:final:step]}
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   155
\begin{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   156
In []: a = [1, 2, 3, 4, 5]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   157
In []: a[1:-1:2] 
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   158
Out[]: [2, 4]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   159
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   160
Start slice from second element(1), till the last element(-1) with step size of 2.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   161
\begin{lstlisting}
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   162
In []: a[::2]
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   163
Out[]: [1, 3, 5]
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   164
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
   165
Start from beginning(since \typ{initial} is blank), till last(this time last element is included, as \typ{final} is blank), with step size of 2.\\
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   166
Apart from using \typ{reverse} command on list, one can also use slicing in special way to get reverse of a list.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   167
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   168
In []: a[-1:-4:-1]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   169
Out[]: [5, 4, 3]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   170
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   171
Above syntax of slice can be expressed as, ``start from last element(\typ{-1}), go till fourth last element(\typ{-4}), with step size \typ{-1}, which implies, go in reverse direction. That is, first element would be \typ{a[-1]}, second element would be \typ{a[-2]} and so on and so forth.''\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   172
So to get reverse of whole list one can write following slice syntax:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   173
\begin{lstlisting}
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   174
In []: a[-1::-1]
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   175
Out[]: [5, 4, 3, 2, 1]
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   176
\end{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   177
Since \typ{final} is left blank, it will traverse through whole list in reverse manner.\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   178
\textbf{Note:} While \typ{reverse} reverses the original list, slicing will just result in a instance list with reverse of original, which can be used and worked upon independently.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   179
%%Should we include  list copy concept here?
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   180
\subsection{Containership}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   181
\typ{in} keyword is used to check for containership of any element in a given list.
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   182
\begin{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   183
In []: a = [2, 5, 4, 6, 9]
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   184
In []: 4 in a
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   185
Out[]: True
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   186
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   187
In []: b = 15
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   188
In []: b in a
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   189
Out[]: False
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   190
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   191
\section{Tuples}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   192
Tuples are sequences just like Lists, but they are \textbf{immutable}, or items/elements cannot be changed in any way.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   193
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   194
In []: t = (1, 2, 3, 4, 5, 6, 7, 8) 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   195
\end{lstlisting}
330
46533051b9d3 commited changes made for scipy and cheatsheats.
Shantanu <shantanu@fossee.in>
parents: 329
diff changeset
   196
\textbf{Note:} For tuples we use parentheses in place of square brackets, rest is same as lists.
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   197
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   198
In []: t[0] + t[3] + t[-1] # elements are accessed via indices
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   199
Out[]: 13
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   200
In []: t[4] = 7 # ERROR: tuples are immutable
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   201
\end{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   202
\textbf{Note:} elements cant be changed!
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   203
\section{Dictionaries}
327
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   204
Dictionaries are data structures that provide key-value mappings. They are similar to lists except that instead of the values having integer indexes, they have keys or strings as indexes.\\
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   205
A simple dictionary can be created by:
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   206
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   207
In []: player = {'Mat': 134,'Inn': 233,
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   208
          'Runs': 10823, 'Avg': 52.53}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   209
\end{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   210
For above case, value on left of ':' is key and value on right is corresponding value. To retrieve value related to key 'Avg'
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   211
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   212
In []: player['Avg']
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   213
Out[]: 52.530000000000001
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   214
\end{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   215
\subsection{Element operations}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   216
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   217
In []: player['Name'] = 'Rahul Dravid' #Adds new key-value pair.
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   218
In []: player
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   219
Out[]: 
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   220
{'Avg': 52.530000000000001,
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   221
 'Inn': 233,
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   222
 'Mat': 134,
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   223
 'Name': 'Rahul Dravid',
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   224
 'Runs': 10823}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   225
In []: player.pop('Mat') # removing particular key-value pair
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   226
Out[]: 134
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   227
In [21]: player
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   228
Out[21]: {'Avg': 52.530000000000001, 'Inn': 233, 
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   229
          'Name': 'Rahul Dravid', 'Runs': 10823}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   230
\end{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   231
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   232
In []: player['Name'] = 'Dravid'
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   233
In []: player
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   234
Out[23]: {'Avg': 52.530000000000001, 'Inn': 233, 
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   235
          'Name': 'Dravid', 'Runs': 10823}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   236
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
   237
\textbf{Note:} Duplicate keys are overwritten!
327
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   238
\subsection{containership}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   239
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   240
In []: 'Inn' in player
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   241
Out[]: True
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   242
In []: 'Econ' in player
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   243
Out[]: False
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   244
\end{lstlisting}
329
0a6ab1d81491 Some more changes for day 2 sessions.
shantanu <shantanu@fossee.in>
parents: 327
diff changeset
   245
\textbf{Note:} Containership is always checked on 'keys' of dictionary, never on 'values'.\\
327
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   246
\subsection{Methods}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   247
\begin{lstlisting}
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   248
In []: player.keys() # returns list of all keys
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   249
Out[]: ['Runs', 'Inn', 'Avg', 'Mat']
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   250
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   251
In []: player.values() # returns list of all values.
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   252
Out[]: [10823, 233, 
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   253
        52.530000000000001, 134]  
c78cad28c2f7 modifeid cheat sheets for session 3, 4 day 2.
Shantanu <shantanu@fossee.in>
parents: 326
diff changeset
   254
\end{lstlisting}
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   255
\section{Sets}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   256
are an unordered collection of unique elements.\\
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   257
Creation:
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   258
\begin{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   259
In []: s = set([2,4,7,8,5]) # creating a basic set
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   260
In []: s
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   261
Out[]: set([2, 4, 5, 7, 8])
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   262
In []: g = set([2, 4, 5, 7, 4, 0, 5])
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   263
In []: g
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   264
Out[]: set([0, 2, 4, 5, 7]) # No repetition allowed.
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   265
\end{lstlisting}
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   266
Some other operations which can be performed on sets are:
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   267
\begin{lstlisting}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   268
In []: f = set([1,2,3,5,8])
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   269
In []: p = set([2,3,5,7])
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   270
In []: f | p # Union of two sets
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   271
Out[]: set([1, 2, 3, 5, 7, 8])
326
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   272
In []: f & p # Intersection of two sets
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   273
Out[]: set([2, 3, 5])
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   274
In []: f - p # Elements in f not is p
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   275
Out[]: set([1, 8])
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   276
In []: f ^ p # (f - p) | (p - f)
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   277
Out[]: set([1, 7, 8])) 
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   278
In []: set([2,3]) < p # Test for subset
f57f42861770 Cheat sheet for session 2 day 2.
Shantanu <shantanu@fossee.in>
parents: 301
diff changeset
   279
Out[]: True
301
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   280
\end{lstlisting}
49bdffe4dca5 Updated session 2 slides of day 1 and added cheatsheets of day 2.
Santosh G. Vattam <vattam.santosh@gmail.com>
parents:
diff changeset
   281
\end{document}