Spring som en kanin!

Erik the Outgolfer 08/26/2017. 30 answers, 2.887 views
code-golf array-manipulation

Givet en liste over ikke-negative heltal i ethvert rimeligt format, gentag det og spring så mange elementer som hvert heltal du går videre på, siger.


Her er et godt eksempel:

[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | []
 ^ First element, always include it
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0]
    ^ Skip 0 elements
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1]
          ^ Skip 1 element
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1, 2]
                   ^ Skip 2 elements
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1, 2, 3]
Skip 3 elements; you're done 

Et andet fungeret eksempel, ikke så lige-delt-deltager:

[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | []
 ^ First element, always include it
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4]
                ^ Skip 4 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3]
                            ^ Skip 3 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3, 3]
                                        ^ Skip 3 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3, 3, 4]
Skip 4 elements; you're done 

Et ekstremt eksempel:

[0, 2, 0, 2, 4, 1, 2] | []
^ First element, always include it
[0, 2, 0, 2, 4, 1, 2] | [0]
    ^ Skip 0 elements
[0, 2, 0, 2, 4, 1, 2] | [0, 2]
             ^ Skip 2 elements
[0, 2, 0, 2, 4, 1, 2] | [0, 2, 4]
Skip 4 elements; you're done (out of bounds) 

Regler

  • Du må ikke bruge nogen kedelig snyde blandt disse , de gør udfordringen kedelig og uinteressant.
  • Du bør kun returnere / udskrive det endelige resultat. STDERR-output ignoreres.
  • Du må muligvis ikke få indtastningen som en streng af cifre i en base (f.eks. "0102513162" til det første tilfælde).
  • Du skal bruge venstre til højre rækkefølge for input.
  • Som i de udførte eksempler, hvis du går ud af grænsen, afslutter eksekveringen som om ellers.
  • Du skal bruge 0 til at springe 0 elementer.
  • I betragtning af den tomme liste ( [] ) som input, skal du returnere [] .

Test tilfælde

[]                                                     => []
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]                     => [0, 1, 3, 7]
[5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0]                   => [5, 2, 1, 0]
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2]                         => [0, 1, 2, 3]
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] => [4, 3, 3, 4]
[0, 2, 0, 2, 4, 1, 2]                                  => [0, 2, 4] 

Dette er , så korteste svar vinder!

5 Comments
Erik the Outgolfer 07/28/2017
Sandkasse (kun 2k + brugere)
3 Shaggy 07/28/2017
Ja, bare spottet det. / sætter briller på
2 Rod 07/28/2017
Sandsynligvis en leprechaun ¯ \ _ (ツ) _ / ¯
1 Roman Gräf 07/28/2017
Er det okay at have efterfølgende nuller i min matrix? ville redde mig ~ 18 bytes
1 Erik the Outgolfer 07/28/2017
@ RomanGräf Beklager, men nej, det ville være for tvetydigt, da der er tilfælde, du burde have efterfølgende 0 s i udgangen.

30 Answers


Rod 07/28/2017.

Python 2 , 36 bytes

 f=lambda x:x and x[:1]+f(x[x[0]+1:]) 

Prøv det online!

4 comments
Mr. Xcoder 07/28/2017
Jeg forventede at få outgolfed, men ikke så slemt :)
Erik the Outgolfer 07/28/2017
Kan du ikke gøre x[0] stedet for x[:1] ?
Rod 07/28/2017
@EriktheOutgolfer ja, men det skal være en liste, så det ville være [x[0]]
Erik the Outgolfer 07/28/2017
@Rod Du gemmer ikke nogen byte med x[:1] alligevel ... f=lambda x:x and[x[0]]+f(x[x[0]+1:])

Mr. Xcoder 08/19/2017.

Python 2 , 49 46 * 41 bytes

Krydset 4 er stadig regelmæssigt 4 :(

* -3 thanks to @ASCII-only .

 l=input()
while l:print l[0];l=l[l[0]+1:] 

Prøv det online!

Udskriver resultaterne adskilt af en newline, som OP tilladt i chat. Jeg tror ikke, det kan få noget kortere som et non-recursive full program .


Hvordan virker det?

  • l=input() - Læs listen fra standardindgangen.

  • while l: - Misbruger det faktum, at tomme lister er falsk i Python, sløjfer, indtil listen er tom.

  • print l[0]; - Udskriver det første element i listen.

  • l=l[l[0]+1:] - "Springer som en kanin" - Klipper den første l[0]+1 fra listen.

Lad os tage et eksempel

I lyset af listen [5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0] som input, udfører koden følgende (ifølge forklaringen ovenfor) - Udskriver det første element i array: 5 , trim de første 6: [2, 1, 2, 1, 0, 0] . Vi udskriver derefter 2 og trimmer den første 3: [1,0,0] . Ligeledes udsender vi 1 , beskærer de første 2, og vi får [0] . Selvfølgelig udskrives 0 og programmet afsluttes.

1 comments

w0lf 07/28/2017.

Haskell, 29 27 26 bytes

 j(x:y)=x:j(drop x y)
j x=x 

Gemt 1 byte takket være Zgarb.

Prøv det online.

2 comments
Zgarb 07/28/2017
f x=x på den anden linje gemmer en byte.
w0lf 07/28/2017
@ Zgarb Cool, tak!

Adnan 07/28/2017.

05AB1E , 10 9 bytes

[¬Dg>#=ƒ¦ 

Bruger 05AB1E kodningen. Prøv det online!

1 comments
Magic Octopus Urn 07/28/2017
Ja, det er langt bedre end det jeg tænkte på.

Martin Ender 07/28/2017.

Mathematica, 46 44 bytes

SequenceCases[#,NO 

Alternativer:

SequenceCases[#,NO 
1 comments
Mr.Wizard 07/28/2017
Wow, det er fremragende!

Johan Karlsson 07/28/2017.

JavaScript (ES6), 42 39 35 bytes

a=>a.map((n,i)=>a.splice(i+1,n))&&a 

 let f = 
a=>a.map((n,i)=>a.splice(i+1,n))&&a

console.log(f([]))                                                     // => []
console.log(f([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))                     // => [0, 1, 3, 7]
console.log(f([5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0]))                   // => [5, 2, 1, 0]
console.log(f([0, 1, 0, 2, 5, 1, 3, 1, 6, 2]))                         // => [0, 1, 2, 3]
console.log(f([4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2])) // => [4, 3, 3, 4]
console.log(f([0, 2, 0, 2, 4, 1, 2]))                                  // => [0, 2, 4] 

Gammel løsning 39 bytes

a=>a.map(n=>i--||r.push(i=n),r=i=[])&&r 

-3 bytes thanks to @ThePirateBay

1 comments
ThePirateBay 07/28/2017
39 bytes a=>a.map(n=>i--||r.push(i=n),r=i=[])&&r

TheLethalCoder 07/28/2017.

C #, 68 bytes

 a=>{for(int i=0;i 

Prøv det online!

Fuld / formateret version:

 namespace System
{
    class P
    {
        static void Main()
        {
            Action> f = a =>            {
                for (int i = 0; i < a.Count; i += a[i] + 1)
                    System.Console.Write(a[i] + " ");
            };

            f(new Collections.Generic.List() { });Console.WriteLine();
            f(new Collections.Generic.List() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });Console.WriteLine();
            f(new Collections.Generic.List() { 5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0 });Console.WriteLine();
            f(new Collections.Generic.List() { 0, 1, 0, 2, 5, 1, 3, 1, 6, 2 });Console.WriteLine();
            f(new Collections.Generic.List() { 4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2 });Console.WriteLine();
            f(new Collections.Generic.List() { 0, 2, 0, 2, 4, 1, 2 });Console.WriteLine();

            Console.ReadLine();
        }
    }
} 

At returnere en liste er længere på 107 byte.

 a=>{var l=new System.Collections.Generic.List();for(int i=0;i 
3 comments
2 TheLethalCoder 07/28/2017
Hvorfor har nogen nedvurderet dette?
Thomas Ayoub 07/31/2017
At runde din score og lave en perfekt 5k?
TheLethalCoder 07/31/2017
@ThomasAyoub Vi kan kun antage, at det var nogen med OCD ja.

Zgarb 07/28/2017.

Husk , 8 6 bytes

←TU¡Γ↓ 

Prøv det online!

-2 bytes (og en helt ny løsning ide) takket være Leo!

Forklaring

Jeg bruger Γ . Det tager en funktion f og en liste med hoved x og hale xs , og anvender f til x og xs . Hvis listen er tom, returnerer Γ en standardværdi i overensstemmelse med dens type, i dette tilfælde en tom liste. Vi tager f til at være , som dråber x elementer fra xs . Denne funktion gentages derefter, og de resulterende elementer samles i en liste.

←TU¡Γ↓  Implicit input, e.g. [0,2,0,2,4,1,2]
    Γ↓  Pattern match using drop
   ¡    iterated infinitely: [[0,2,0,2,4,1,2],[2,0,2,4,1,2],[4,1,2],[],[],[],...
  U     Cut at first repeated value: [[0,2,0,2,4,1,2],[2,0,2,4,1,2],[4,1,2],[]]
 T      Transpose: [[0,2,4],[2,0,1],[0,2,2],[2,4],[4,1],[1,2],[2]]
←       First element: [0,2,4] 
5 comments
Leo 07/28/2017
Du kan slippe standardværdien af ​​ø, og alt vil stadig arbejde magisk :)
Zgarb 07/28/2017
@Leo Oh wow, det er klogt!
Erik the Outgolfer 07/28/2017
Hvorfor har du CW dette?
Zgarb 07/28/2017
@ErikTheOutgolfer Det var en fejltagelse (jeg er på min telefon og tilsyneladende skubbet noget ved et uheld). Jeg forsøger at fortryde det ...

Ruud 07/28/2017.

Python 2 , 59 55 bytes

 l=input()
i=0
while l[i:]:i+=1;l[i:i+l[i-1]]=[]
print l 

Prøv det online!

2 comments
1 Rod 07/28/2017
Du kan bruge l[i:i+l[i-1]]=[] stedet del l[i:i+l[i-1]] at gemme en byte
1 ASCII-only 07/28/2017

Dave 07/28/2017.

Pyth, 22 Bytes

VQ aY.(Q0VeY .x.(Q0 ;Y 

Fjernet en ubrugelig byte

4 comments
Erik the Outgolfer 07/28/2017
Jeg ser 23 bytes der.
Dave 07/28/2017
Typo :) undskyld ...
3 Wheat Wizard 07/28/2017
Jeg er ikke sikker på, hvorfor du har en afstemning. Der er en mulighed for, at når du redigerede fastsættelse af dit svar udløste dette en "automatisk nedstemning". Årsagerne til denne automatiske downvote er forvirrende og forfærdelige, men det sker, hvis systemet anser dit svar for at være "lav kvalitet" baseret på det heuristiske. Det er også muligt, at nogen ikke kunne lide dit svar, men jeg ser ikke noget galt med det i øjeblikket, så jeg er ikke sikker på, hvorfor det ville være tilfældet.
isaacg 07/31/2017
Jeg er glad for at du bruger Pyth!

Rod 07/28/2017.

Python 2 , 60 42 bytes

-18 byte takket være Luis Mendo

 x=input()
i=0
while 1:print x[i];i+=1+x[i] 

Prøv det online!


Martin Ender 07/28/2017.

Nethinden , 36 bytes

Byte-tælling forudsætter ISO 8859-1-kodning.

.+
$*
((1)*¶)(?<-2>1*¶)*
$1
%M`.
0$ 

Input og output er linefeed-separeret med en efterfølgende linefeed.

Prøv det online! (Bruger kommaer i stedet for linefeeds for at give mulighed for praktiske testpakker.)


Riley 07/28/2017.

Brain-Flak , 64 bytes

([]){{}(({})<>)<>{({}[()]<{}>)}{}([])}{}<>([]){{}({}<>)<>([])}<> 

Prøv det online!

([]){{}                          ([])}{}                         # Until the stack is empty
       (({})<>)<>                                                # Copy TOS to off stack
                 {({}[()]<{}>)}{}                                # Pop TOS times
                                        <>([]){{}({}<>)<>([])}<> # Reverse off stack 
2 comments
6 DJMcMayhem 07/28/2017
Hellige crap! Jeg skrev en løsning, og rullede derefter ned for at sende den, men det viser sig, at vi skrev den exact samme løsning byte-for-byte! Selv mindre detaljer som ({}[()]<{}>) vs ({}<{}>[()]) var de samme! Sikke et tilfælde!
2EZ 4RTZ 07/28/2017
@DJMcMayhem stjæler al den berømmelse XD

user202729 07/28/2017.

Mathematica, 64 50 bytes

±x_List:=Prepend[±Drop[x,1+#&@@x],#&@@x]
±_=±{}={} 
1 comments
Mr.Wizard 07/28/2017
Jeg kunne ikke modstå yderligere golf denne pæne kode; mit svar er nedenfor.

jkelm 07/28/2017.

C # (. NET Core) , 68 bytes

 n=>{var t="";for(int i=0;i 

Prøv det online!

Indtastes som en matrix af heltal, returnerer en streng, der indeholder de ikke-hoppede værdier.

3 comments
TheLethalCoder 07/28/2017
Nice måde at gøre det og kommer ind på samme tæller som trykning.
jkelm 07/28/2017
Jeg elsker de enkle løsninger. Jeg må stadig lære LINQ, som jeg har set, at forkorte så mange c # lambdas ..
TheLethalCoder 07/28/2017
Forkorter det, fordi du kan implicit returnere det meste af tiden. Selv om det er et kaste op imellem implicit tilbagevenden ved at using System.Linq; og en normal sløjfe.

Jarko Dubbeldam 07/28/2017.

R, 58 byte

f=function(x,p=1)NO 

Rekursiv funktion. Tar en vektor x som argument og indierer en peger p . Dette udskriver den tilsvarende indtastning af x , kontrollerer om p+x[p] ville gå uden for grænserne, og hvis ikke, kalder funktionen for den nye peger.

f=function(x,p=1,s=x[1])`if`((z<-x[p]+p+1)>sum(x|1),s,f(x,z,c(s,x[z]))) 

Dette er en sammenlignelig løsning, der returnerer en ordentlig vektor i stedet for at udskrive cifrene.

3 comments
Giuseppe 07/28/2017
Hvad med en indtastning af numeric(0) ? aka tomt array.
Jarko Dubbeldam 07/28/2017
@Giuseppe Jeg tager et kig på det, når jeg er bag min pc
Giuseppe 08/24/2017
57 byte! og det håndterer også det tomme tilfælde.

Roman Gräf 07/28/2017.

Java (OpenJDK 8) , 53 bytes

Takket være @ PunPun1000 og @TheLethalCoder

 a->{for(int n=0;;n+=1+a[n])System.out.println(a[n]);} 

Prøv det online!

5 comments
TheLethalCoder 07/28/2017
Vil du udskrive resultaterne, som i mit C # svar, redder du noget?
Roman Gräf 07/28/2017
@TheLethalCoder Ill prøve
TheLethalCoder 07/28/2017
Kan du gemme en byte ved at flytte n ind i løkken?
TheLethalCoder 07/28/2017
Plus det ser ikke ud til at fungere i øjeblikket.
PunPun1000 07/28/2017
Du mangler en paren efter (a[n+=1+a[n]] . Funktionen kaster også en fejl efter udgivelse af den korrekte værdi, jeg ved ikke konsensus om, hvorvidt dette er tilladt eller ej (spørgsmålet gør sige noget til standardfejl ignoreres.) Hvis det var meningen, så kan du fjerne n i n . Endelig løber TIO-koden ikke som den er, selv med paren. Funktionen skal være en Consumer og brug func.accept(test)

Martin Ender 07/28/2017.

Alice , 15 bytes

/$.. \h&
\I@nO/ 

Prøv det online!

Indtast og output en linefeed-adskilte lister over decimaltallet.

Forklaring

/   Switch to Ordinal mode.
I   Read a line.
.   Duplicate it.
n   Logical NOT (gives truthy if we're at EOF).
/   Switch to Cardinal.
    The IP wraps around to the left.
\   Switch to Ordinal.
$@  Terminate the program if we're at EOF.
.   Duplicate the input line again.
O   Print it.
\   Switch to Cardinal.
h   Increment the value.
&   Store the result in the iterator queue.
    The program wraps around to the beginning. 

Lagring af et helt tal n i iteratorkøen får den næste kommando til at blive udført n gange. Spejle som / er ikke kommandoer, så den næste kommando bliver I . Derfor, hvis vi lige læser og udskriver en værdi x , vil vi læse x+1 værdier ved den næste iteration, med den sidste af dem, der ender på toppen af ​​stakken. Dette hopper over de nødvendige nummerlisteelementer.


Mr.Wizard 07/28/2017.

Mathematica , 37 (30?)

Yderligere golf af user202729s fine metode.

±NO 

Reglerne ser ikke ud til at angive outputformatet eksplicit, så måske:

±NO 

Output for den anden funktion ligner: 0.2.4.{} - især {} returneres stadig for et tomt sæt, som overholder den endelige regel.

2 comments
1 JungHwan Min 07/28/2017
±Drop[NO kan være ±NO fordi ± har en lavere prioritet end Infix .
Mr.Wizard 07/28/2017
@JungHwanMin jeg savnede det; tak!

Jenny_mathy 07/28/2017.

Mathematica, 65 bytes

(s=#;t=1;w={};While[t<=Length@s,AppendTo[w,k=s[[t]]];t=t+k+1];w)& 

Prøv det online!


w0lf 07/28/2017.

Ruby, 36 33 31

f=->l{a,*l=l;a&&f[l.drop(p a)]} 

Prøv det online.

4 comments
sethrin 07/30/2017
Du har lov til at trække f= som et headerelement.
w0lf 07/30/2017
@sethrin Selvom jeg skal kalde det rekursivt?
sethrin 07/30/2017
Hmm, godt spørgsmål. Det formoder jeg ikke. Det gjorde jeg meget gerne om din løsning forresten.
w0lf 07/30/2017
@sethrin tak! :)

AnonymousReality 07/28/2017.

Swift, 63 bytes

func a(d:[Int]){var i=0;while i 

Dette er min første post, nogensinde, så jeg er ikke 100% sikker på reglerne, men forhåbentlig er dette svar tilstrækkeligt. Jeg er lidt usikker på regler om, hvordan man får input til et system. Jeg har et kortere svar, hvis jeg fik lov til at påtage sig en funktion et sted, der kan returnere input.

2 comments
Stephen 07/28/2017
Velkommen til PPCG! Standardreglerne er, at du enten kan have kode, der fungerer som et fuldt program, så input (normalt) i STDIN og output (normalt) til STDOUT or en funktion, så input (normalt) fra funktionsparametre og output (normalt) fra funktion tilbagevenden.
AnonymousReality 07/28/2017
@StepHen - tak! Jeg gætter det, der gør min anden version ugyldig da. Ser frem til at bidrage mere!

Perl 6 , 31 bytes

 {(@_,{.[1+.[0]..*]}...^0)[*;0]} 

Test det

Udvidet:

 {  # bare block lambda with implicit parameter 「@_」
  (
    # generate a sequence

    @_,

    {
      .[ # index into previous value in the sequence
        1 + .[0]  # start by skipping one plus the first element
                  # of the previous value in the sequence
        ..  *     # use that to create a Range with no end
      ]
    }

    ...^  # keep doing that until: (and throw away last value)
    0     # it generates an empty list

  )[ *; 0 ]  # from every value in the sequence, get the first element
} 

For at hjælpe med at forstå, hvordan koden fungerer, uden [*;0] ville dette generere en sekvens som følgende:

 [0, 1, 0, 2, 5, 1, 3, 1, 6, 2],
   (1, 0, 2, 5, 1, 3, 1, 6, 2),
         (2, 5, 1, 3, 1, 6, 2),
                  (3, 1, 6, 2) 

Renzo 07/29/2017.

Fælles Lisp, 51 bytes

(do((x(read)(nthcdr(1+(print(car x)))x)))((not x))) 

Prøv det online!


C ++ (gcc), 172 bytes

#includeint main(){std::istream& i=std::cin;char c;int a,b;while(i>>c&&i>>a){std::cout<>c&&i>>b);}std::cout< 

Prøv det online

Den forfærdelige (c/91?"":" ") Er for korrekt afstand i output. Uden den (-15 bytes) er output i form: [0,2,4] , når jeg ændrer det til simple " " (-9 bytes), er output som [ 0, 2, 4] (ekstra plads i starten) .

<<(c/93?"":"]") på enden er kun til at håndtere [] tomme indtastnings hjørne tilfælde

Udskriver ingen efterfølgende linie.

1 comments
Erik the Outgolfer 07/30/2017
Du kan også udskrive numrene adskilt af en ikke-cifret separator, du behøver ikke [] og du kan have tomt output til den kasse og ikke behov for (c/91?"":" ") . Du behøver ikke at matche formatet af eksemplerne i udfordringen.

Jonathan Allan 07/29/2017.

Gelé , 8 byte

ḢṄ‘ṫ@µL¿ 

Et fuldt program udskriver resultaterne hver efterfulgt af en ny linje (tom liste producerer ingen output).

Try it online!

Hvordan?

ḢṄ‘ṫ@µL¿ - Main link: list of non-negative integers  e.g. [2,5,4,0,1,2,0]
       ¿ - while:           Iteration:  1                  2             3          4        5
      L  -   length (0 is falsey)       7                  4             3          1        0
     µ   - ...do:                                                                            stop
Ḣ        -   head (pop & modify)        2 ([5,4,0,1,2,0])  0 ([1,2,0])   1 ([2,0])  0 ([0])
 Ṅ       -   print it (and yield it)   "2\n"              "0\n"         "1\n"      "0\n"
  ‘      -   increment                  3                  1             2          1
   ṫ@    -   tail from index            [0,1,2,0]          [1,2,0]      [0]         []
         -
         -                       i.e. a resulting in the printing of: '''2
                                                                         0
                                                                         1
                                                                         0
                                                                         ''' 
2 comments
Erik the Outgolfer 07/30/2017
Endelig et gelé svar! BTW Jeg kan gøre det i 7 bytes.
Erik the Outgolfer 07/30/2017
Og jeg har også en liste-returfunktion i 18 byte.

Evpok 07/30/2017.

Python 3 , 35 bytes

 f=lambda h=0,*t:t and[h,*f(*t[h:])] 

Prøv det online!

Kør det med f(*l) hvor l er dit input. Kan nok strække reglerne for input, men jeg elsker bare avanceret udpakning.


cliffroot 07/28/2017.

Clojure, 67 bytes

#(nth(reduce(fn[[z k]b](if(= z 0)[b(conj k b)][(- z 1)k]))[0[]]%)1) 

Begynder med de indledende parametre [0 []] , hvor 0 er tælleren og [] er resultatet. Hvis det første element i denne liste er 0 tilføjer punkt n fra argumentet til resultatet og går videre denne liste [n [... n]] ellers reducerer det første element. (denne forklaring føles forfærdelig for mig)

Se det online


Dead Possum 07/28/2017.

Python 2,4, 85 bytes

Ingen chance for at vinde i python med det, men jeg elsker onelinere, og denne kan være interessant for andre.
Det viser sig, at der er et fancy magisk trick for at få adgang til byggelisten indenfor forståelse, men det virker kun i 2,4 og med nogle ændringer i <= 2.3
locals()['_[1]'] det er. Python opretter hemmeligt navn _[1] til liste, mens det er oprettet og gemt det i locals . Også navne _[2] , _[3] ... bruges til indlejrede lister.

lambda n:[j for i,j in enumerate(n)if i==len(locals()['_[1]'])+sum(locals()['_[1]'])] 

Så det tæller antallet af allerede tilføjede elementer plus deres sum. Resultat er indekset for det næste ønskede element.
Jeg synes, at der bør være en måde at undgå opregning af. Kan lide at få adgang til input array direkte efter indeks: [ n[len(locals()['_[1]'])+sum(locals()['_[1]'])] for ... ] . Men jeg kan ikke finde ud af en kompakt måde at beskytte den mod indeks uden for rækkevidde (samtidig med at den fortsætter)

Indtast billedbeskrivelse her


Neil 07/28/2017.

Batch, 69 bytes

:l
@if not "%1"=="" echo %1&(for /l %%i in (0,1,%1)do @shift)&goto l 

(Jeg har brug for () s rundt om for ellers sker goto inde i løkken.)


HighResolutionMusic.com - Download Hi-Res Songs

1 The Chainsmokers

Beach House flac

The Chainsmokers. 2018. Writer: Andrew Taggart.
2 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
3 Anne-Marie

Rewrite The Stars flac

Anne-Marie. 2018. Writer: Benj Pasek;Justin Paul.
4 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
5 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
6 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
7 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
8 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
9 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
10 Nicki Minaj

No Candle No Light flac

Nicki Minaj. 2018. Writer: Denisia “Blu June” Andrews;Kathryn Ostenberg;Brittany "Chi" Coney;Brian Lee;TJ Routon;Tushar Apte;ZAYN;Nicki Minaj.
11 Rita Ora

Cashmere flac

Rita Ora. 2018. Writer: Sean Douglas;Lindy Robbins.
12 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
13 Brooks

Limbo flac

Brooks. 2018.
14 Rita Ora

Velvet Rope flac

Rita Ora. 2018.
15 Fitz And The Tantrums

HandClap flac

Fitz And The Tantrums. 2017. Writer: Fitz And The Tantrums;Eric Frederic;Sam Hollander.
16 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
17 Cher Lloyd

None Of My Business flac

Cher Lloyd. 2018. Writer: ​iamBADDLUCK;Alexsej Vlasenko;Kate Morgan;Henrik Meinke;Jonas Kalisch;Jeremy Chacon.
18 Billie Eilish

When The Party's Over flac

Billie Eilish. 2018. Writer: Billie Eilish;FINNEAS.
19 Kelly Clarkson

Never Enough flac

Kelly Clarkson. 2018. Writer: Benj Pasek;Justin Paul.
20 Lil Pump

Arms Around You flac

Lil Pump. 2018. Writer: Rio Santana;Lil Pump;Edgar Barrera;Mally Mall;Jon Fx;Skrillex;Maluma;Swae Lee;XXXTENTACION.

Related questions

Hot questions

Language

Popular Tags