{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [ "remove_cell" ] }, "source": [ "
\n", "
\n", "

Ingenieurinformatik – Übung

\n", " Lehrstuhl Computational Civil Engineering
\n", " Kontakt: Email senden | Individuelle Kontakte siehe Webseite des Lehrstuhls
\n", " Links: \n", " Vorlesungsskript | \n", " Webseite des Lehrstuhls\n", "
\n", "
\n", " \n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Listen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eine der wichtigsten Datenstrukturen im technischen und wissenschaftlichen Rechnen sind Listen. Später werden auch die damit verwandten Arrays eingeführt, welche diese in vielen numersichen Berechnungen ablösen werden. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grundlagen und Beispiele" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Listen können explizit mit Hilfe der eckigen Klammern `[]` erstellt werden, z.B.:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "l1 = [45, 33, 12, 93, 3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Um strukturierte Listen zu erzeugen, kann die `range` Funktion verwendet werden. Diese liefert zwar keine Liste zurück, das Ergebniss kann aber mit dem `list` Befehl in eine Liste umgewandelt werden. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Im Allgemeinen kann die `range` Funktion mit folgenden Argumenten aufgerufen werden: \n", "\n", "* `stop`: erstes Element, welches nicht mehr Teil der Rückgabe ist\n", "* `start`: erstes Element der Rückgabe\n", "* `step`: Schrittweite, in welcher die Rückgabe, bei `start` anfangend, erzeugt wird\n", "\n", "Je nach Anzahl der Argumente, werden die nicht angegeben entsprechend gesetzt.\n", "\n", "* `range(stop)` setzt `start=0` und `step=1`,\n", "* `range(start, stop)` setzt `step=1`, und\n", "* `range(start, stop, step)` berücksichtig alle Angaben.\n", "\n", "Eine umfangreichere Vorstellung der `range` Funktion befindet sich in [der Dokumentation](https://docs.python.org/3/library/stdtypes.html#ranges)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beispiele:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8]\n" ] } ], "source": [ "# Erstelle Liste von 0 bis 8\n", "l2 = list(range(9))\n", "print(l2)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10, 22, 34, 46, 58, 70, 82, 94, 106, 118, 130, 142, 154]\n" ] } ], "source": [ "# Erstelle Liste von 10 bis 154 in 12-er Schritten\n", "l3 = list(range(10,155,12))\n", "print(l3)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[20, 15, 10, 5, 0, -5, -10, -15, -20]\n" ] } ], "source": [ "# Erstelle Liste von 20 bis -20 in 5-er Schritten\n", "l4 = list(range(20, -21, -5))\n", "print(l4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aufgabenteil A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Verwenden Sie die `range` Funktion um folgende Listen zu erzeugen:\n", "\n", "1. `[0, 1, 2, 3]`\n", "1. `[0, 2, 4, 6, 8]`\n", "1. `[15, 16, 17, 18]`\n", "1. `[10, 9, 8, 7, 6, 5, 4]`\n", "1. `[9, 5, 1]`\n", "1. Alle ungeraden Zahlen bis 50" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "loesung", "hide-cell" ] }, "source": [ "### Lösungsvorschlag" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3]\n" ] } ], "source": [ "# zu 1:\n", "l1 = list( range(4) )\n", "print( l1 )" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 2, 4, 6, 8]\n" ] } ], "source": [ "# zu 2:\n", "l2 = list( range(0, 9, 2) )\n", "print( l2 )" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[15, 16, 17, 18]\n" ] } ], "source": [ "# zu 3:\n", "l3 = list( range(15, 19) )\n", "print( l3 )" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[10, 9, 8, 7, 6, 5, 4]\n" ] } ], "source": [ "# zu 4:\n", "l4 = list( range(10, 3, -1) )\n", "print( l4 )" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[9, 5, 1]\n" ] } ], "source": [ "# zu 5:\n", "l5 = list( range(9, 0, -4) )\n", "print( l5 )" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]\n" ] } ], "source": [ "# zu 6:\n", "l6 = list( range(1, 51, 2) )\n", "print(l6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aufgabenteil B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Erzeugen Sie Liste von 0 bis 10 mit der `range` Funktion und speichern Sie diese in einer Variablen. Benutzen Sie ausschließlich die Methoden der Listenklasse um folgende Manipulationen durchzuführen. Geben Sie die Liste nach jeder Änderung aus.\n", "\n", "1. Fügen Sie den Wert -11 am Ende der Liste ein.\n", "1. Erweitern Sie die Liste um `[-22, 33, -44]`.\n", "1. Entfernen Sie das dritte und vierte Element der Liste.\n", "1. Fügen Sie an dritter Stelle den Wert 0 ein.\n", "1. Sortieren Sie die Liste." ] }, { "cell_type": "markdown", "metadata": { "tags": [ "loesung", "hide-cell" ] }, "source": [ "### Lösungsvorschlag" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n" ] } ], "source": [ "liste = list(range(11))\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11]\n" ] } ], "source": [ "# zu 1:\n", "liste.append(-11)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]\n" ] } ], "source": [ "# zu 2:\n", "liste.extend( [-22, 33, -44] )\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 3, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]\n" ] } ], "source": [ "# zu 3:\n", "liste.pop(2)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]\n" ] } ], "source": [ "# nochmals zu 3: das vorherige vierte Element ist durch den\n", "# vorangegangen pop-Aufruf nun an dritter Stelle\n", "liste.pop(2)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 0, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]\n" ] } ], "source": [ "# zu 4:\n", "liste.insert(2, 0)\n", "print(liste)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "tags": [ "loesung", "hide-cell" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-44, -22, -11, 0, 0, 1, 4, 5, 6, 7, 8, 9, 10, 33]\n" ] } ], "source": [ "# zu 5:\n", "liste.sort()\n", "print(liste)" ] } ], "metadata": { "celltoolbar": "Tags", "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }