{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "tup = (4, 5, 6)\n", "tup" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "tup = 4, 5, 6\n", "tup" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "tuple([4, 0, 2])\n", "tup = tuple('string')\n", "tup" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "tup[0]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "nested_tup = (4, 5, 6), (7, 8)\n", "nested_tup\n", "nested_tup[0]\n", "nested_tup[1]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "tup = tuple(['foo', [1, 2], True])\n", "tup[2] = False" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "tup[1].append(3)\n", "tup" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "(4, None, 'foo') + (6, 0) + ('bar',)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "('foo', 'bar') * 4" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "tup = (4, 5, 6)\n", "a, b, c = tup\n", "b" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "tup = 4, 5, (6, 7)\n", "a, b, (c, d) = tup\n", "d" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "a, b = 1, 2\n", "a\n", "b\n", "b, a = a, b\n", "a\n", "b" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "seq = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]\n", "for a, b, c in seq:\n", " print(f'a={a}, b={b}, c={c}')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "values = 1, 2, 3, 4, 5\n", "a, b, *rest = values\n", "a\n", "b\n", "rest" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "a, b, *_ = values" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "a = (1, 2, 2, 2, 3, 4, 2)\n", "a.count(2)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "a_list = [2, 3, 7, None]\n", "\n", "tup = (\"foo\", \"bar\", \"baz\")\n", "b_list = list(tup)\n", "b_list\n", "b_list[1] = \"peekaboo\"\n", "b_list" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "gen = range(10)\n", "gen\n", "list(gen)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "b_list.append(\"dwarf\")\n", "b_list" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "b_list.insert(1, \"red\")\n", "b_list" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "b_list.pop(2)\n", "b_list" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "b_list.append(\"foo\")\n", "b_list\n", "b_list.remove(\"foo\")\n", "b_list" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "\"dwarf\" in b_list" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "\"dwarf\" not in b_list" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "[4, None, \"foo\"] + [7, 8, (2, 3)]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "x = [4, None, \"foo\"]\n", "x.extend([7, 8, (2, 3)])\n", "x" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "a = [7, 2, 5, 1, 3]\n", "a.sort()\n", "a" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "b = [\"saw\", \"small\", \"He\", \"foxes\", \"six\"]\n", "b.sort(key=len)\n", "b" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "seq = [7, 2, 3, 7, 5, 6, 0, 1]\n", "seq[1:5]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "seq[3:5] = [6, 3]\n", "seq" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "seq[:5]\n", "seq[3:]" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "seq[-4:]\n", "seq[-6:-2]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "seq[::2]" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "seq[::-1]" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "empty_dict = {}\n", "d1 = {\"a\": \"some value\", \"b\": [1, 2, 3, 4]}\n", "d1" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "d1[7] = \"an integer\"\n", "d1\n", "d1[\"b\"]" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "\"b\" in d1" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "d1[5] = \"some value\"\n", "d1\n", "d1[\"dummy\"] = \"another value\"\n", "d1\n", "del d1[5]\n", "d1\n", "ret = d1.pop(\"dummy\")\n", "ret\n", "d1" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "list(d1.keys())\n", "list(d1.values())" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "list(d1.items())" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "d1.update({\"b\": \"foo\", \"c\": 12})\n", "d1" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "tuples = zip(range(5), reversed(range(5)))\n", "tuples\n", "mapping = dict(tuples)\n", "mapping" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "words = [\"apple\", \"bat\", \"bar\", \"atom\", \"book\"]\n", "by_letter = {}\n", "\n", "for word in words:\n", " letter = word[0]\n", " if letter not in by_letter:\n", " by_letter[letter] = [word]\n", " else:\n", " by_letter[letter].append(word)\n", "\n", "by_letter" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "by_letter = {}\n", "for word in words:\n", " letter = word[0]\n", " by_letter.setdefault(letter, []).append(word)\n", "by_letter" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "from collections import defaultdict\n", "by_letter = defaultdict(list)\n", "for word in words:\n", " by_letter[word[0]].append(word)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "hash(\"string\")\n", "hash((1, 2, (2, 3)))\n", "hash((1, 2, [2, 3])) # fails because lists are mutable" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "d = {}\n", "d[tuple([1, 2, 3])] = 5\n", "d" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [], "source": [ "set([2, 2, 2, 1, 3, 3])\n", "{2, 2, 2, 1, 3, 3}" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "a = {1, 2, 3, 4, 5}\n", "b = {3, 4, 5, 6, 7, 8}" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "a.union(b)\n", "a | b" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "a.intersection(b)\n", "a & b" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "c = a.copy()\n", "c |= b\n", "c\n", "d = a.copy()\n", "d &= b\n", "d" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "my_data = [1, 2, 3, 4]\n", "my_set = {tuple(my_data)}\n", "my_set" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "a_set = {1, 2, 3, 4, 5}\n", "{1, 2, 3}.issubset(a_set)\n", "a_set.issuperset({1, 2, 3})" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "{1, 2, 3} == {3, 2, 1}" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "sorted([7, 1, 2, 6, 0, 3, 2])\n", "sorted(\"horse race\")" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "seq1 = [\"foo\", \"bar\", \"baz\"]\n", "seq2 = [\"one\", \"two\", \"three\"]\n", "zipped = zip(seq1, seq2)\n", "list(zipped)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "seq3 = [False, True]\n", "list(zip(seq1, seq2, seq3))" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "for index, (a, b) in enumerate(zip(seq1, seq2)):\n", " print(f\"{index}: {a}, {b}\")\n" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "list(reversed(range(10)))" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "strings = [\"a\", \"as\", \"bat\", \"car\", \"dove\", \"python\"]\n", "[x.upper() for x in strings if len(x) > 2]" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "unique_lengths = {len(x) for x in strings}\n", "unique_lengths" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "set(map(len, strings))" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "loc_mapping = {value: index for index, value in enumerate(strings)}\n", "loc_mapping" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "all_data = [[\"John\", \"Emily\", \"Michael\", \"Mary\", \"Steven\"],\n", " [\"Maria\", \"Juan\", \"Javier\", \"Natalia\", \"Pilar\"]]" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "names_of_interest = []\n", "for names in all_data:\n", " enough_as = [name for name in names if name.count(\"a\") >= 2]\n", " names_of_interest.extend(enough_as)\n", "names_of_interest" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [], "source": [ "result = [name for names in all_data for name in names\n", " if name.count(\"a\") >= 2]\n", "result" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [], "source": [ "some_tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]\n", "flattened = [x for tup in some_tuples for x in tup]\n", "flattened" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "flattened = []\n", "\n", "for tup in some_tuples:\n", " for x in tup:\n", " flattened.append(x)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "[[x for x in tup] for tup in some_tuples]" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "def my_function(x, y):\n", " return x + y" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [], "source": [ "my_function(1, 2)\n", "result = my_function(1, 2)\n", "result" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [], "source": [ "def function_without_return(x):\n", " print(x)\n", "\n", "result = function_without_return(\"hello!\")\n", "print(result)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "def my_function2(x, y, z=1.5):\n", " if z > 1:\n", " return z * (x + y)\n", " else:\n", " return z / (x + y)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "my_function2(5, 6, z=0.7)\n", "my_function2(3.14, 7, 3.5)\n", "my_function2(10, 20)" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "a = []\n", "def func():\n", " for i in range(5):\n", " a.append(i)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "func()\n", "a\n", "func()\n", "a" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "a = None\n", "def bind_a_variable():\n", " global a\n", " a = []\n", "bind_a_variable()\n", "print(a)" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [], "source": [ "states = [\" Alabama \", \"Georgia!\", \"Georgia\", \"georgia\", \"FlOrIda\",\n", " \"south carolina##\", \"West virginia?\"]" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "import re\n", "\n", "def clean_strings(strings):\n", " result = []\n", " for value in strings:\n", " value = value.strip()\n", " value = re.sub(\"[!#?]\", \"\", value)\n", " value = value.title()\n", " result.append(value)\n", " return result" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "clean_strings(states)" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [], "source": [ "def remove_punctuation(value):\n", " return re.sub(\"[!#?]\", \"\", value)\n", "\n", "clean_ops = [str.strip, remove_punctuation, str.title]\n", "\n", "def clean_strings(strings, ops):\n", " result = []\n", " for value in strings:\n", " for func in ops:\n", " value = func(value)\n", " result.append(value)\n", " return result" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "clean_strings(states, clean_ops)" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "for x in map(remove_punctuation, states):\n", " print(x)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "def short_function(x):\n", " return x * 2\n", "\n", "equiv_anon = lambda x: x * 2" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [], "source": [ "def apply_to_list(some_list, f):\n", " return [f(x) for x in some_list]\n", "\n", "ints = [4, 0, 1, 5, 6]\n", "apply_to_list(ints, lambda x: x * 2)" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "strings = [\"foo\", \"card\", \"bar\", \"aaaa\", \"abab\"]" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [], "source": [ "strings.sort(key=lambda x: len(set(x)))\n", "strings" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "some_dict = {\"a\": 1, \"b\": 2, \"c\": 3}\n", "for key in some_dict:\n", " print(key)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "dict_iterator = iter(some_dict)\n", "dict_iterator" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [], "source": [ "list(dict_iterator)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "def squares(n=10):\n", " print(f\"Generating squares from 1 to {n ** 2}\")\n", " for i in range(1, n + 1):\n", " yield i ** 2" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [], "source": [ "gen = squares()\n", "gen" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [], "source": [ "for x in gen:\n", " print(x, end=\" \")" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [], "source": [ "gen = (x ** 2 for x in range(100))\n", "gen" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [], "source": [ "sum(x ** 2 for x in range(100))\n", "dict((i, i ** 2) for i in range(5))" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "import itertools\n", "def first_letter(x):\n", " return x[0]\n", "\n", "names = [\"Alan\", \"Adam\", \"Wes\", \"Will\", \"Albert\", \"Steven\"]\n", "\n", "for letter, names in itertools.groupby(names, first_letter):\n", " print(letter, list(names)) # names is a generator" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "float(\"1.2345\")\n", "float(\"something\")" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [], "source": [ "def attempt_float(x):\n", " try:\n", " return float(x)\n", " except:\n", " return x" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [], "source": [ "attempt_float(\"1.2345\")\n", "attempt_float(\"something\")" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [], "source": [ "float((1, 2))" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [], "source": [ "def attempt_float(x):\n", " try:\n", " return float(x)\n", " except ValueError:\n", " return x" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [], "source": [ "attempt_float((1, 2))" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [], "source": [ "def attempt_float(x):\n", " try:\n", " return float(x)\n", " except (TypeError, ValueError):\n", " return x" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [], "source": [ "path = \"examples/segismundo.txt\"\n", "f = open(path, encoding=\"utf-8\")" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [], "source": [ "lines = [x.rstrip() for x in open(path, encoding=\"utf-8\")]\n", "lines" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [], "source": [ "f.close()" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [], "source": [ "with open(path, encoding=\"utf-8\") as f:\n", " lines = [x.rstrip() for x in f]" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [], "source": [ "f1 = open(path)\n", "f1.read(10)\n", "f2 = open(path, mode=\"rb\") # Binary mode\n", "f2.read(10)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [], "source": [ "f1.tell()\n", "f2.tell()" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.getdefaultencoding()" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [], "source": [ "f1.seek(3)\n", "f1.read(1)\n", "f1.tell()" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [], "source": [ "f1.close()\n", "f2.close()" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [], "source": [ "path\n", "\n", "with open(\"tmp.txt\", mode=\"w\") as handle:\n", " handle.writelines(x for x in open(path) if len(x) > 1)\n", "\n", "with open(\"tmp.txt\") as f:\n", " lines = f.readlines()\n", "\n", "lines" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [], "source": [ "import os\n", "os.remove(\"tmp.txt\")" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [], "source": [ "with open(path) as f:\n", " chars = f.read(10)\n", "\n", "chars\n", "len(chars)" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [], "source": [ "with open(path, mode=\"rb\") as f:\n", " data = f.read(10)\n", "\n", "data" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [], "source": [ "data.decode(\"utf-8\")\n", "data[:4].decode(\"utf-8\")" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [], "source": [ "sink_path = \"sink.txt\"\n", "with open(path) as source:\n", " with open(sink_path, \"x\", encoding=\"iso-8859-1\") as sink:\n", " sink.write(source.read())\n", "\n", "with open(sink_path, encoding=\"iso-8859-1\") as f:\n", " print(f.read(10))" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [], "source": [ "os.remove(sink_path)" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [], "source": [ "f = open(path, encoding='utf-8')\n", "f.read(5)\n", "f.seek(4)\n", "f.read(1)\n", "f.close()" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }