day2/cheatsheet2.tex
author Shantanu <shantanu@fossee.in>
Tue, 22 Dec 2009 14:10:37 +0530
changeset 330 46533051b9d3
parent 329 0a6ab1d81491
permissions -rw-r--r--
commited changes made for scipy and cheatsheats.
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}