Python :: Aufgabe #320
5 Lösungen

Text gemäß Vorlage neu sortieren
Anfänger - Python
von JKooP
- 12.02.2021 um 09:53 Uhr
Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden.
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
Dazu soll eine Methode/Funktion erstellt werden, mit der man die Zeichen des
Ausgangstextes gemäß den vorgegebenen Positionen im Array neu anordnet.
Ausgangstext = "programmyourtrainer"
Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ]
Zieltext = "trainyourprogrammer"
Erläuterung:
Das erste Zeichen des Ausgangstextes (p) muss gem. Array an die 9. Position.
Das Zeichen (y) muss an die 5. Position. Achtung: Array ist nullbasiert!
_ _ _ _ _ y _ _ _ p _ _ _ _ _ _ _ _
Viel Spaß
Lösungen:

Ausgangstext = "programmyourtrainer" laenge = len(Ausgangstext) Zieltext = [""] * laenge Array = [9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18] for i in range(0, laenge): Zieltext[Array[i]] = Ausgangstext[i] Ausgabe = "" for e in Zieltext: Ausgabe += e print(Ausgabe)

#320 Text gemäß Vorlage neu sortieren ausgangstext = 'programmyourtrainer' arr = [9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18] zieltext = '' def neu_sortieren(): liste = [] ziel = [] x = 0 for i in range(len(arr)): ziel.append('') for i in ausgangstext: liste.append(i) for i in arr: ziel[i] = liste[x] x += 1 zieltext = ''.join(ziel) print(zieltext) neu_sortieren()

from typing import List def sort_text_by_arr(text: str, arr: List[int]) -> str: assert len(text) == len(arr), f'params must have same size' dct = {elem: char for char, elem in zip(text, arr)} return ''.join([dct[val] for val in sorted(dct)])

""" #320 Text gemäß Vorlage neu sortieren Ein durcheinandergeratener Text soll gemäß einer Vorlage (Array) neu sortiert werden. """ Array = [9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18] Ausgangstext = "programmyourtrainer" Arr_m = [""] * 19 aus = "" for i in range(0, len(Array)): Arr_m[Array[i]] = Ausgangstext[i] for j in range(0, len(Arr_m)): aus += (Arr_m[j]) print(aus)

Ausgangstext = "programmyourtrainer" Array = [ 9, 10, 11, 12, 13, 14, 15, 16, 5, 6, 7, 8, 0, 1, 2, 3, 4, 17, 18 ] Zieltext = "trainyourprogrammer" ziel=[] for i in range(0,len(Array)): a=Array.index(i) ziel.append(Ausgangstext[a]) print(''.join(ziel))