Erweiterung eines Zahlenblocks in Python

8

Bevor ich gefragt habe, habe ich gegoogelt und konnte keine Antwort finden.

Das Szenario, das ich habe, ist das: Eine Liste mit Zahlen wird an das Skript übergeben, entweder \ n-durch eine Datei getrennt oder durch Komma getrennt über eine Befehlszeile arg. Die Zahlen können einzeln oder in Blöcken sein:

Datei:

%Vor%

Befehlszeilenarg:

%Vor%

Beide enden in derselben Liste []. Ich würde gerne die 7-10 oder 20-25 Blöcke erweitern (offensichtlich im eigentlichen Skript werden diese Zahlen variieren) und sie an eine neue Liste anhängen, wobei die endgültige Liste wie folgt aussieht:

%Vor%

Ich verstehe, dass etwas wie .append (range (7,10)) mir hier helfen könnte, aber ich kann anscheinend nicht herausfinden, welche Elemente der ursprünglichen Liste [] die Notwendigkeit einer Erweiterung haben.

Meine Frage ist also: Gegeben eine Liste []:

%Vor%

Wie bekomme ich eine Liste []:

%Vor%     
Shadow Master 12.05.2015, 20:47
quelle

3 Antworten

10

Nehmen wir an, Sie haben die Liste:

%Vor%

und Sie möchten alle darin enthaltenen Bereiche erweitern:

%Vor%

Natürlich gibt es dafür einen praktischen One-Liner:

%Vor%

Aber das nutzt die Natur von undichten Variablen in python2.7 aus, was meiner Meinung nach in python3 nicht funktioniert. Außerdem ist es nicht gerade die lesenswerteste Codezeile. Also würde ich es nicht wirklich in der Produktion verwenden, wenn ich du wäre ... außer du hasst deinen Manager wirklich.

Referenzen: append() continue split() extend() < a href="https://docs.python.org/2/library/functions.html#map"> map() range() list() itertools.chain.from_iterable() int()

    
inspectorG4dget 12.05.2015 20:52
quelle
1

Eingabe:

%Vor%

Ausgabe:

%Vor%

Oder (in Python 2):

%Vor%     
Stefan Pochmann 12.05.2015 21:06
quelle
0

Gute alte Karte + reduzieren wird praktisch:

%Vor%

Nun, das würde den Trick machen, außer dass Sie wollen, dass 20-25 auch 25 enthält ... also kommt hier noch mehr Suppe:

%Vor%

Nun, obwohl das funktioniert, sind Sie wahrscheinlich besser dran mit einer For-Schleife. Nun, das ist ein Grund, warum sie in Python 3 reduzieren.

    
Visgean Skeloru 12.05.2015 23:15
quelle