Hassen Sie es nicht, wenn Sie eine Liste von Zahlen (Vektor, Array ...) von einem Programm in ein anderes kopieren und einfügen möchten, aber das Format, in dem Sie die Zahlen haben, stimmt nicht mit dem Format überein, in dem Sie sie benötigen ?
In MATLAB können Sie beispielsweise eine durch Leerzeichen getrennte Liste haben:
[1 2 3 4 5] (you can also have it comma separated, but that's not the point)
In Python müssten Sie Kommas einfügen, damit diese Liste eine gültige Eingabe ist, sodass Sie sie in konvertieren müssen
[1, 2, 3, 4, 5]
damit es funktioniert. In C ++ möchten Sie vielleicht etwas wie:
{16,2,77,29}
und so weiter.
Um das Leben aller zu vereinfachen, erstellen wir einen Listenkonverter, der eine Liste in einem beliebigen Format * erstellt und eine Liste in einem anderen angegebenen Format ausgibt.
Die gültigen Klammern sind:
[list]
{list}
(list)
<list>
list (no surrounding brackets)
Die gültigen Begrenzer sind:
a,b,c
a;b;c
a b c
a, b, c <-- Several spaces. Must only be supported as input.
a; b; c <-- Several spaces. Must only be supported as input.
a b c <-- Several spaces. Must only be supported as input.
Beachten Sie, dass die Eingabe beliebig viele Leerzeichen zwischen den Zahlen enthalten kann. Die Ausgabe kann jedoch auch null Leerzeichen (wenn ,
oder ;
als Trennzeichen verwendet) oder ein einzelnes Leerzeichen (wenn es durch Leerzeichen getrennt ist) verwenden.
Zusätzlich zur Eingabeliste gibt es eine Zeichenfolge (oder zwei Zeichen), die das Ausgabeformat definiert. Die Formatzeichenkette wird zuerst der Öffnungsbügel Typ sein (nur) [
, (
, <
, {
oder (die letzten ist ein einziger Raum verwendet , wenn es keine umgebende Klammer). Die Halterung Typ wird von dem Trennzeichen - Typ folgen,
,
, ;
oder (die letzten ist ein einziger Raum). Die beiden Eingabeformatzeichen müssen als einzelnes Argument (Zeichenfolge oder zwei aufeinanderfolgende Zeichen) in der oben beschriebenen Reihenfolge verwendet werden.
Einige Beispiele für Formatstrings:
[, <-- Output format: [a,b,c]
{; <-- Output format: {a;b;c}
<-- Two spaces, output list has format: a b c
Regeln:
- Die Ausgabe darf keine führenden Leerzeichen enthalten
- Die Ausgabe kann abschließende Leerzeichen und eine neue Zeile enthalten
- Die Ausgabe sollte nur die Liste der Zahlen sein, nicht
ans =
oder ähnlich
- Die Ausgabe sollte nur die Liste der Zahlen sein, nicht
- Die Eingabe besteht aus einer Liste von Ganzzahlen oder Dezimalzahlen (sowohl positive als auch negative (und Null)) und einer Zeichenfolge aus zwei Zeichen
- Wenn die Eingabe nur aus Ganzzahlen besteht, sollte die Ausgabeliste nur Ganzzahlen enthalten. Wenn die Eingabeliste aus Ganzzahlen und Dezimalzahlen besteht, können alle Ausgabezahlen Dezimalzahlen sein. (Es ist optional, die Ganzzahlen als Ganzzahlen beizubehalten.)
- Die maximal zu unterstützende Anzahl von Nachkommastellen beträgt 3.
- Die Eingabe besteht aus zwei Argumenten. Dh die Zahlen sind in einem Argument und die Formatzeichenfolge ist ein einzelnes Argument.
- Der Code kann ein Programm oder eine Funktion sein
- Die Eingabe kann ein Funktionsargument oder STDIN sein
Einige Beispiele:
1 2 3 4
[,
[1,2,3,4]
<1; 2; 3>
; <-- Space + semicolon
1;2;3
not valid: 1.000;2.000;3.000 (Input is only integers => Output must be integers)
{-1.3, 3.4, 4, 5.55555555}
[,
[-1.300,3.400,4.000,5.556] (5.555 is also valid. Rounding is optional)
also valid: [-1.3,3.4,4,5.55555555]
Der kürzeste Code in Bytes gewinnt. Wie immer wird der Gewinner eine Woche ab dem Tag ausgewählt, an dem die Herausforderung veröffentlicht wurde. Antworten, die später veröffentlicht werden, können trotzdem gewinnen, wenn sie kürzer als der aktuelle Gewinner sind.
Bestenliste
Das Stapel-Snippet am Ende dieses Beitrags generiert den Katalog aus den Antworten a) als Liste der kürzesten Lösungen pro Sprache und b) als Gesamt-Bestenliste.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
_
bezeichnet negative Elemente. :(