diff --git a/representation_construits/chapitre_3/.ipynb_checkpoints/README-checkpoint.ipynb b/representation_construits/chapitre_3/.ipynb_checkpoints/README-checkpoint.ipynb deleted file mode 100644 index 80c5b67..0000000 --- a/representation_construits/chapitre_3/.ipynb_checkpoints/README-checkpoint.ipynb +++ /dev/null @@ -1,396 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "b8f17c0e", - "metadata": {}, - "source": [ - "# # Structures imbriquées et compréhensions" - ] - }, - { - "cell_type": "markdown", - "id": "5c98615f", - "metadata": {}, - "source": [ - "> Il est possible de combiner listes, tuples, et dictionnaires. Avec la syntaxe des compréhensions, l'écriture des listes et dictionnaires semble plus élègante." - ] - }, - { - "cell_type": "markdown", - "id": "6a42e2e0", - "metadata": {}, - "source": [ - "----" - ] - }, - { - "cell_type": "markdown", - "id": "2cda11f3", - "metadata": {}, - "source": [ - "## Les structures imbriquées" - ] - }, - { - "cell_type": "markdown", - "id": "ca8a7b82", - "metadata": {}, - "source": [ - "On peut imbriquer des listes, des tuples et des dictionnaires. Par contre, les clés de dictionnaire ne peuvent pas muter.\n", - "\n", - "De ce fait, nous pouvons construire des listes de listes, des listes de tuples, des listes de dictionnaires, des tuples de listes, des dictionnaires de tuples..." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "e3846d2b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(-1, 0)" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "lst = [(4,5), (-1, 0), (2.5, 1)]\n", - "len (lst)\n", - "lst[1]" - ] - }, - { - "cell_type": "markdown", - "id": "15b98fb6", - "metadata": {}, - "source": [ - "Ici, on crée une liste de trois tuples.\n", - "\n", - "Que peuvent représenter ces trois tuples ?\n", - "\n", - "On peut vérifier qu'il s'agut bien d'un tuple :" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "7ce7324e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "tuple" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "t = lst[1]\n", - "type(t)" - ] - }, - { - "cell_type": "markdown", - "id": "8edf8304", - "metadata": {}, - "source": [ - "On peut également accéder directement à l'abscisse ou à l'ordonnée d'un point :" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "056d9616", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "lst[2][1]" - ] - }, - { - "cell_type": "markdown", - "id": "3622be65", - "metadata": {}, - "source": [ - "Ici, on accède donc à la première valeur du tuple n°2." - ] - }, - { - "cell_type": "markdown", - "id": "8001f10a", - "metadata": {}, - "source": [ - "------" - ] - }, - { - "cell_type": "markdown", - "id": "572e8c71", - "metadata": {}, - "source": [ - "## Parcours" - ] - }, - { - "cell_type": "markdown", - "id": "bbd95e5a", - "metadata": {}, - "source": [ - "Soit une liste de dictionnaires" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "7ad98a69", - "metadata": {}, - "outputs": [], - "source": [ - "persos = [{\"prenom\" : \"Bilbo\", \"nom\" : \"Baggins\", \"age\" : 111},\n", - " {\"prenom\" : \"Frodo\", \"nom\": \"Baggins\", \"age\" : 33},\n", - " {\"prenom\" : \"Sam\", \"nom\": \"Gamgee\", \"age\" : 21}]" - ] - }, - { - "cell_type": "markdown", - "id": "79500e4c", - "metadata": {}, - "source": [ - "On peut parcourir cette liste en séparant chaque dictionnaire :" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e1f9d519", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "----------\n", - "prenom : Bilbo\n", - "nom : Baggins\n", - "age : 111\n", - "----------\n", - "prenom : Frodo\n", - "nom : Baggins\n", - "age : 33\n", - "----------\n", - "prenom : Sam\n", - "nom : Gamgee\n", - "age : 21\n" - ] - } - ], - "source": [ - "for p in persos:\n", - " print (\"----------\")\n", - " for k, v in p.items():\n", - " print (k, ' : ', v)" - ] - }, - { - "cell_type": "markdown", - "id": "2e16c4c1", - "metadata": {}, - "source": [ - "Que fait la première boucle ? La seconde ?" - ] - }, - { - "cell_type": "markdown", - "id": "64e9f3d8", - "metadata": {}, - "source": [ - "------" - ] - }, - { - "cell_type": "markdown", - "id": "8c553978", - "metadata": {}, - "source": [ - "## Les compréhensions" - ] - }, - { - "cell_type": "markdown", - "id": "37f82c8b", - "metadata": {}, - "source": [ - "> La notation en compréhension permet de créer une liste ou un dictionnaire sans en lister les élèments de manière explicite." - ] - }, - { - "cell_type": "markdown", - "id": "c051c29f", - "metadata": {}, - "source": [ - "Par exemple, pour créer une liste comportant les entiers de 2 à 10 inclus :" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "2ff74969", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[2, 3, 4, 5, 6, 7, 8, 9, 10]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[i for i in range (2, 11)]" - ] - }, - { - "cell_type": "markdown", - "id": "ba1daaa0", - "metadata": {}, - "source": [ - "On peut aussi appliquer des fonctions à chaque élément :" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "a1f0ed4a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[4, 9, 16, 25, 36, 49, 64, 81, 100]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[i ** 2 for i in range (2, 11)]" - ] - }, - { - "cell_type": "markdown", - "id": "25813435", - "metadata": {}, - "source": [ - "Enfin, il est possible d'appliquer des conditions dans votre déclaration de structures:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "34096ef5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[9, 49, 169, 289, 529, 729, 1089, 1369, 1849, 2209]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[i ** 2 for i in range (2, 51) if (i ** 2) % 10 == 9]" - ] - }, - { - "cell_type": "markdown", - "id": "cf329e0d", - "metadata": {}, - "source": [ - "Que fait cette instruction ?\n", - "\n", - "Pour les dictionnaires : la syntaxe est la même, il faut juste préciser la clé et la valeur de chaque élèment :" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "f974717b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729, 10: 1000}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "{k: k ** 3 for k in range (2, 11)}" - ] - }, - { - "cell_type": "markdown", - "id": "ae71eaa0", - "metadata": {}, - "source": [ - "Cela va créer un dictionnaire donc chaque clé sera un nombre entre 2 et 11 non compris, et où la valeur de chaque clé sera le cube de la clé associée.\n", - "\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.8.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}