diff options
Diffstat (limited to 'basic_python/slides/tuples_dicts_sets.tex')
-rw-r--r-- | basic_python/slides/tuples_dicts_sets.tex | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/basic_python/slides/tuples_dicts_sets.tex b/basic_python/slides/tuples_dicts_sets.tex deleted file mode 100644 index b09fd99..0000000 --- a/basic_python/slides/tuples_dicts_sets.tex +++ /dev/null @@ -1,258 +0,0 @@ -\section{Tuples} - -\begin{frame}[fragile] - \frametitle{Tuples -- Initialization} - \begin{lstlisting} - In[]: t = (1, 2.5, "hello", -4, "world", 1.24, 5) - In[]: t - \end{lstlisting} - \begin{itemize} - \item It is not always necessary to use parenthesis - \end{itemize} - \begin{lstlisting} - In[]: a = 1, 2, 3 - In[]: b = 1, - \end{lstlisting} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Indexing} - \begin{lstlisting} - In[]: t[3] - In[]: t[1:5:2] - In[]: t[2] = "Hello" - \end{lstlisting} - \begin{itemize} - \item \alert{Tuples are immutable!} - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Swapping values} - \begin{lstlisting} - In[]: a = 5 - In[]: b = 7 - - In[]: temp = a - In[]: a = b - In[]: b = temp - \end{lstlisting} - \begin{itemize} - \item Here's the Pythonic way of doing it - \end{itemize} - \begin{lstlisting} - In[]: a, b = b, a - \end{lstlisting} - \begin{itemize} - \item The variables can be of different data-types - \end{itemize} - \begin{lstlisting} - In[]: a = 2.5 - In[]: b = "hello" - In[]: a, b = b, a - \end{lstlisting} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Tuple packing \& unpacking} - \begin{lstlisting} - In[]: 5, - - In[]: 5, "hello", 2.5 - \end{lstlisting} - \begin{itemize} - \item Tuple packing and unpacking, when swapping - \end{itemize} - \begin{lstlisting} - In[]: a, b = b, a - \end{lstlisting} -\end{frame} - -\section{Dictionaries} - -\begin{frame}[fragile] - \frametitle{Creating Dictionaries} - \begin{lstlisting} - In[]: mt_dict = {} - - In[]: extensions = {'jpg' : 'JPEG Image', - 'py' : 'Python script', - 'html' : 'Html document', - 'pdf' : 'Portable Document Format'} - - In[]: extensions - \end{lstlisting} - \begin{itemize} - \item Key-Value pairs - \item \alert{ No ordering of keys! } - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Accessing Elements} - \begin{lstlisting} - In[]: print extensions['jpg'] - \end{lstlisting} - \begin{itemize} - \item Values can be accessed using keys - \end{itemize} - \begin{lstlisting} - In[]: print extensions['zip'] - \end{lstlisting} - \begin{itemize} - \item Values of non-existent keys cannot, obviously, be accessed - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Adding \& Removing Elements} - \begin{itemize} - \item Adding a new key-value pair - \end{itemize} - \begin{lstlisting} - In[]: extensions['cpp'] = 'C++ code' - In[]: extensions - \end{lstlisting} - \begin{itemize} - \item Deleting a key-value pair - \end{itemize} - \begin{lstlisting} - In[]: del extension['pdf'] - In[]: extensions - \end{lstlisting} - \begin{itemize} - \item Assigning to existing key, modifies the value - \end{itemize} - \begin{lstlisting} - In[]: extensions['cpp'] = 'C++ source code' - In[]: extensions - \end{lstlisting} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Containership} - \begin{lstlisting} - In[]: 'py' in extensions - In[]: 'odt' in extensions - \end{lstlisting} - \begin{itemize} - \item Allow checking for container-ship of keys; NOT values - \item Use the \texttt{in} keyword to check for container-ship - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Lists of Keys and Values} - \begin{lstlisting} - In[]: extensions.keys() - In[]: extensions.values() - \end{lstlisting} - \begin{itemize} - \item Note that the order of the keys and values match - \item That can be relied upon and used - \end{itemize} - \begin{lstlisting} - In[]: for each in extensions.keys(): - ....: print each, "-->", extensions[each] - ....: - \end{lstlisting} -\end{frame} - -\section{Sets} - -\begin{frame}[fragile] - \frametitle{Creating Sets} - \begin{lstlisting} - In[]: a_list = [1, 2, 1, 4, 5, 6, 2] - In[]: a = set(a_list) - In[]: a - \end{lstlisting} - \begin{itemize} - \item Conceptually identical to the sets in mathematics - \item Duplicate elements not allowed - \item No ordering of elements exists - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Operations on Sets} - \begin{lstlisting} - In[]: f10 = set([1, 2, 3, 5, 8]) - In[]: p10 = set([2, 3, 5, 7]) - \end{lstlisting} - \begin{itemize} - \item Mathematical operations performed on sets, can be performed - \end{itemize} - \begin{itemize} - \item Union - \begin{lstlisting} - In[]: f10 | p10 - \end{lstlisting} - \item Intersection - \begin{lstlisting} - In[]: f10 & p10 - \end{lstlisting} - \item Difference - \begin{lstlisting} - In[]: f10 - p10 - \end{lstlisting} - \item Symmetric Difference - \begin{lstlisting} - In[]: f10 ^ p10 - \end{lstlisting} - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Sub-sets} - \begin{itemize} - \item Proper Subset - \begin{lstlisting} - In[]: b = set([1, 2]) - In[]: b < f10 - \end{lstlisting} - \item Subsets - \begin{lstlisting} - In[]: f10 <= f10 - \end{lstlisting} - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Elements of sets} - \begin{itemize} - \item Containership - \begin{lstlisting} - In[]: 1 in f10 - In[]: 4 in f10 - \end{lstlisting} - \item Iterating over elements - \begin{lstlisting} - In[]: for i in f10: - ....: print i, - ....: - \end{lstlisting} - \item Subsets - \begin{lstlisting} - In[]: f10 <= f10 - \end{lstlisting} - \end{itemize} -\end{frame} - -\begin{frame}[fragile] - \frametitle{Sets -- Example} - \begin{block}{} - Given a list of marks, \texttt{[20, 23, 22, 23, 20, 21, 23]} list - all the duplicates - \end{block} - \begin{lstlisting} - In[]: marks = [20, 23, 22, 23, 20, 21, 23] - In[]: marks_set = set(marks) - In[]: for mark in marks_set: - ....: marks.remove(mark) - - # left with only duplicates - In[]: duplicates = set(marks) - \end{lstlisting} -\end{frame} - |