diff --git a/uebungen.ipynb b/uebungen.ipynb index 08fb54c..643956f 100644 --- a/uebungen.ipynb +++ b/uebungen.ipynb @@ -1738,24 +1738,12 @@ "print(r)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Fügen Sie hier Ihren Code für \n", - "\n", - "some_str = ExtendedString('Das ist ein Test, oder etwa nicht?')\n", - "print(some_str.multisplit(' ?,'))" - ] - }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 9.3. [Aufgabe](#toc0_)\n", - "Erstellen Sie eine Klasse `ExtendedString`, die die gleiche Funktionalität wie die originale `str`-Klasse anbietet, deren `split`-Funktion jedoch einen zusätzlichen Parameter `multi` anbietet. Wird `multi` nicht angegeben oder ist es auf `False` gesetzt, verhält sich `split` wie in der originalen `str`-Klasse. Ist `multi` jedoch auf `True` gesetzt, wird der jeweilige String an jedem Character des Separator-Strings geteilt. Das Argument `maxsplit` kann in diesem Fall der Einfachheit halber ignoriert werden.\n", + "Erstellen Sie eine Klasse `ExtendedString`, die die gleiche Funktionalität wie die originale `str`-Klasse anbietet. Wird `multi_split` jedoch aufgerufen, wird der jeweilige String an jedem Character des Separator-Strings geteilt.\n", "\n", "**Beispiel**\n", "\n", @@ -1765,7 +1753,7 @@ "
\n", "`print(some_str.split(' ?,'))` gibt `['Das ist ein Test, oder etwa nicht?']` aus.\n", "
\n", - "`print(some_str.split(' ?,', multi=True))` gibt `['Das', 'ist', 'ein', 'Test', 'oder', 'etwa', 'nicht']` aus.\n", + "`print(some_str.multi_split(' ?,'))` gibt `['Das', 'ist', 'ein', 'Test', 'oder', 'etwa', 'nicht']` aus.\n", "" ] }, @@ -1775,7 +1763,23 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "class ExtendedString(str):\n", + " def multi_split(self, separators):\n", + " result = [self]\n", + " for sep in separators:\n", + " tmp = []\n", + " for elem in result:\n", + " tmp.extend(elem.split(sep))\n", + " result = [entry for entry in tmp if len(entry) > 0]\n", + " \n", + " return result\n", + " \n", + "\n", + "some_str = ExtendedString('Das ist ein Test, oder etwa nicht?')\n", + "print(some_str.split())\n", + "print(some_str.split(' ?,'))\n", + "print(some_str.multi_split(' ?,'))" ] }, {