summaryrefslogtreecommitdiff
path: root/basic_python/slides/tuples_dicts_sets.tex
diff options
context:
space:
mode:
Diffstat (limited to 'basic_python/slides/tuples_dicts_sets.tex')
-rw-r--r--basic_python/slides/tuples_dicts_sets.tex118
1 files changed, 60 insertions, 58 deletions
diff --git a/basic_python/slides/tuples_dicts_sets.tex b/basic_python/slides/tuples_dicts_sets.tex
index 29dadba..b09fd99 100644
--- a/basic_python/slides/tuples_dicts_sets.tex
+++ b/basic_python/slides/tuples_dicts_sets.tex
@@ -3,24 +3,24 @@
\begin{frame}[fragile]
\frametitle{Tuples -- Initialization}
\begin{lstlisting}
- t = (1, 2.5, "hello", -4, "world", 1.24, 5)
- t
+ 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}
- a = 1, 2, 3
- b = 1,
+ In[]: a = 1, 2, 3
+ In[]: b = 1,
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
\frametitle{Indexing}
\begin{lstlisting}
- t[3]
- t[1:5:2]
- t[2] = "Hello"
+ In[]: t[3]
+ In[]: t[1:5:2]
+ In[]: t[2] = "Hello"
\end{lstlisting}
\begin{itemize}
\item \alert{Tuples are immutable!}
@@ -30,41 +30,41 @@
\begin{frame}[fragile]
\frametitle{Swapping values}
\begin{lstlisting}
- a = 5
- b = 7
+ In[]: a = 5
+ In[]: b = 7
- temp = a
- a = b
- b = temp
+ 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}
- a, b = b, a
+ In[]: a, b = b, a
\end{lstlisting}
\begin{itemize}
\item The variables can be of different data-types
\end{itemize}
\begin{lstlisting}
- a = 2.5
- b = "hello"
- a, b = b, a
+ 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}
- 5,
+ In[]: 5,
- 5, "hello", 2.5
+ In[]: 5, "hello", 2.5
\end{lstlisting}
\begin{itemize}
\item Tuple packing and unpacking, when swapping
\end{itemize}
\begin{lstlisting}
- a, b = b, a
+ In[]: a, b = b, a
\end{lstlisting}
\end{frame}
@@ -73,14 +73,14 @@
\begin{frame}[fragile]
\frametitle{Creating Dictionaries}
\begin{lstlisting}
- mt_dict = {}
+ In[]: mt_dict = {}
- extensions = {'jpg' : 'JPEG Image',
+ In[]: extensions = {'jpg' : 'JPEG Image',
'py' : 'Python script',
'html' : 'Html document',
'pdf' : 'Portable Document Format'}
- extensions
+ In[]: extensions
\end{lstlisting}
\begin{itemize}
\item Key-Value pairs
@@ -91,13 +91,13 @@
\begin{frame}[fragile]
\frametitle{Accessing Elements}
\begin{lstlisting}
- print extensions['jpg']
+ In[]: print extensions['jpg']
\end{lstlisting}
\begin{itemize}
\item Values can be accessed using keys
\end{itemize}
\begin{lstlisting}
- print extensions['zip']
+ In[]: print extensions['zip']
\end{lstlisting}
\begin{itemize}
\item Values of non-existent keys cannot, obviously, be accessed
@@ -110,30 +110,30 @@
\item Adding a new key-value pair
\end{itemize}
\begin{lstlisting}
- extensions['cpp'] = 'C++ code'
- extensions
+ In[]: extensions['cpp'] = 'C++ code'
+ In[]: extensions
\end{lstlisting}
\begin{itemize}
\item Deleting a key-value pair
\end{itemize}
\begin{lstlisting}
- del extension['pdf']
- extensions
+ In[]: del extension['pdf']
+ In[]: extensions
\end{lstlisting}
\begin{itemize}
\item Assigning to existing key, modifies the value
\end{itemize}
\begin{lstlisting}
- extensions['cpp'] = 'C++ source code'
- extensions
+ In[]: extensions['cpp'] = 'C++ source code'
+ In[]: extensions
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
\frametitle{Containership}
\begin{lstlisting}
- 'py' in extensions
- 'odt' in extensions
+ In[]: 'py' in extensions
+ In[]: 'odt' in extensions
\end{lstlisting}
\begin{itemize}
\item Allow checking for container-ship of keys; NOT values
@@ -144,16 +144,17 @@
\begin{frame}[fragile]
\frametitle{Lists of Keys and Values}
\begin{lstlisting}
- extensions.keys()
- extensions.values()
+ 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}
- for each in extensions.keys():
- print each, "-->", extensions[each]
+ In[]: for each in extensions.keys():
+ ....: print each, "-->", extensions[each]
+ ....:
\end{lstlisting}
\end{frame}
@@ -162,9 +163,9 @@
\begin{frame}[fragile]
\frametitle{Creating Sets}
\begin{lstlisting}
- a_list = [1, 2, 1, 4, 5, 6, 2]
- a = set(a_list)
- a
+ 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
@@ -176,8 +177,8 @@
\begin{frame}[fragile]
\frametitle{Operations on Sets}
\begin{lstlisting}
- f10 = set([1, 2, 3, 5, 8])
- p10 = set([2, 3, 5, 7])
+ 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
@@ -185,19 +186,19 @@
\begin{itemize}
\item Union
\begin{lstlisting}
- f10 | p10
+ In[]: f10 | p10
\end{lstlisting}
\item Intersection
\begin{lstlisting}
- f10 & p10
+ In[]: f10 & p10
\end{lstlisting}
\item Difference
\begin{lstlisting}
- f10 - p10
+ In[]: f10 - p10
\end{lstlisting}
\item Symmetric Difference
\begin{lstlisting}
- f10 ^ p10
+ In[]: f10 ^ p10
\end{lstlisting}
\end{itemize}
\end{frame}
@@ -207,12 +208,12 @@
\begin{itemize}
\item Proper Subset
\begin{lstlisting}
- b = set([1, 2])
- b < f10
+ In[]: b = set([1, 2])
+ In[]: b < f10
\end{lstlisting}
\item Subsets
\begin{lstlisting}
- f10 <= f10
+ In[]: f10 <= f10
\end{lstlisting}
\end{itemize}
\end{frame}
@@ -222,17 +223,18 @@
\begin{itemize}
\item Containership
\begin{lstlisting}
- 1 in f10
- 4 in f10
+ In[]: 1 in f10
+ In[]: 4 in f10
\end{lstlisting}
\item Iterating over elements
\begin{lstlisting}
- for i in f10:
- print i,
+ In[]: for i in f10:
+ ....: print i,
+ ....:
\end{lstlisting}
\item Subsets
\begin{lstlisting}
- f10 <= f10
+ In[]: f10 <= f10
\end{lstlisting}
\end{itemize}
\end{frame}
@@ -244,13 +246,13 @@
all the duplicates
\end{block}
\begin{lstlisting}
- marks = [20, 23, 22, 23, 20, 21, 23]
- marks_set = set(marks)
- for mark in marks_set:
- marks.remove(mark)
+ 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
- duplicates = set(marks)
+ In[]: duplicates = set(marks)
\end{lstlisting}
\end{frame}