How to reverse every other sublist of a list? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How can the lowest non-zero value in a nested list be found and its position in the sublist returned?Comparing elements of the $n^textth$ sublist in a ragged list with the $n^textth$ member of a sequenceSublist inside simple listHow to split list into disjoint lists?Selecting every last element of a nested listAdd elements of one list to sublists of another listEliminating elements from sublists under a global conditionRemove the right sublistList manipulation - adding last element of sublist to each sublistHow to partition a 1D list according to specified lengths?

Mortgage adviser recommends a longer term than necessary combined with overpayments

Stars Make Stars

Why don't the Weasley twins use magic outside of school if the Trace can only find the location of spells cast?

Does a C shift expression have unsigned type? Why would Splint warn about a right-shift?

How can players take actions together that are impossible otherwise?

Slither Like a Snake

Determine whether f is a function, an injection, a surjection

Notation for two qubit composite product state

What LEGO pieces have "real-world" functionality?

Unexpected result with right shift after bitwise negation

Is there folklore associating late breastfeeding with low intelligence and/or gullibility?

Who can trigger ship-wide alerts in Star Trek?

How can I make names more distinctive without making them longer?

I'm having difficulty getting my players to do stuff in a sandbox campaign

Geometric mean and geometric standard deviation

What did Darwin mean by 'squib' here?

Classification of bundles, Postnikov towers, obstruction theory, local coefficients

When is phishing education going too far?

How to say that you spent the night with someone, you were only sleeping and nothing else?

Was credit for the black hole image misattributed?

How do you clear the ApexPages.getMessages() collection in a test?

Can I throw a longsword at someone?

What items from the Roman-age tech-level could be used to deter all creatures from entering a small area?

Active filter with series inductor and resistor - do these exist?



How to reverse every other sublist of a list?



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?How can the lowest non-zero value in a nested list be found and its position in the sublist returned?Comparing elements of the $n^textth$ sublist in a ragged list with the $n^textth$ member of a sequenceSublist inside simple listHow to split list into disjoint lists?Selecting every last element of a nested listAdd elements of one list to sublists of another listEliminating elements from sublists under a global conditionRemove the right sublistList manipulation - adding last element of sublist to each sublistHow to partition a 1D list according to specified lengths?










5












$begingroup$


I have a list with sublists list = 1, 2, 3, 4, 5, 6, 7, 8. I would like to reverse every other sublist, starting from the second one. The result would look like result = 1, 2, 4, 3, 5, 6, 8, 7. What would be a simple way to do this?










share|improve this question









$endgroup$
















    5












    $begingroup$


    I have a list with sublists list = 1, 2, 3, 4, 5, 6, 7, 8. I would like to reverse every other sublist, starting from the second one. The result would look like result = 1, 2, 4, 3, 5, 6, 8, 7. What would be a simple way to do this?










    share|improve this question









    $endgroup$














      5












      5








      5


      2



      $begingroup$


      I have a list with sublists list = 1, 2, 3, 4, 5, 6, 7, 8. I would like to reverse every other sublist, starting from the second one. The result would look like result = 1, 2, 4, 3, 5, 6, 8, 7. What would be a simple way to do this?










      share|improve this question









      $endgroup$




      I have a list with sublists list = 1, 2, 3, 4, 5, 6, 7, 8. I would like to reverse every other sublist, starting from the second one. The result would look like result = 1, 2, 4, 3, 5, 6, 8, 7. What would be a simple way to do this?







      list-manipulation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Apr 9 at 20:32









      nanjunnanjun

      44629




      44629




















          4 Answers
          4






          active

          oldest

          votes


















          13












          $begingroup$

          Use MapAt, which accepts the same syntax as Part:



          MapAt[Reverse, list, 2 ;; ;; 2]
          (* 1, 2, 4, 3, 5, 6, 8, 7 *)





          share|improve this answer









          $endgroup$




















            9












            $begingroup$

            Using Part and Span might not seem overly elegant but it is fast:



            list = RandomReal[-1, 1, 100000, 10];

            a = MapAt[Reverse, list, 2 ;; ;; 2]; // RepeatedTiming // First

            b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First

            c = Module[result = list,
            result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
            result
            ]; // RepeatedTiming // First

            a == b == c



            0.11



            0.317



            0.0036



            True







            share|improve this answer











            $endgroup$








            • 2




              $begingroup$
              A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
              $endgroup$
              – ciao
              Apr 10 at 21:00


















            4












            $begingroup$

            Another method is to use ReplacePart:



            ReplacePart[1, 2, 3, 4, 5, 6, 7, 8,
            i_ ? EvenQ :> Reverse@list[[i]]
            ]
            (* 1,2,4,3,5,6,8,7 *)





            share|improve this answer









            $endgroup$




















              3












              $begingroup$

              This will work



              list = 1, 2, 3, 4, 5, 6, 7, 8;

              Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], i, 1, Length[list]]

              (*1, 2, 4, 3, 5, 6, 8, 7*)
              ```





              share|improve this answer








              New contributor




              cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.






              $endgroup$













                Your Answer








                StackExchange.ready(function()
                var channelOptions =
                tags: "".split(" "),
                id: "387"
                ;
                initTagRenderer("".split(" "), "".split(" "), channelOptions);

                StackExchange.using("externalEditor", function()
                // Have to fire editor after snippets, if snippets enabled
                if (StackExchange.settings.snippets.snippetsEnabled)
                StackExchange.using("snippets", function()
                createEditor();
                );

                else
                createEditor();

                );

                function createEditor()
                StackExchange.prepareEditor(
                heartbeatType: 'answer',
                autoActivateHeartbeat: false,
                convertImagesToLinks: false,
                noModals: true,
                showLowRepImageUploadWarning: true,
                reputationToPostImages: null,
                bindNavPrevention: true,
                postfix: "",
                imageUploader:
                brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                allowUrls: true
                ,
                onDemand: true,
                discardSelector: ".discard-answer"
                ,immediatelyShowMarkdownHelp:true
                );



                );













                draft saved

                draft discarded


















                StackExchange.ready(
                function ()
                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194901%2fhow-to-reverse-every-other-sublist-of-a-list%23new-answer', 'question_page');

                );

                Post as a guest















                Required, but never shown

























                4 Answers
                4






                active

                oldest

                votes








                4 Answers
                4






                active

                oldest

                votes









                active

                oldest

                votes






                active

                oldest

                votes









                13












                $begingroup$

                Use MapAt, which accepts the same syntax as Part:



                MapAt[Reverse, list, 2 ;; ;; 2]
                (* 1, 2, 4, 3, 5, 6, 8, 7 *)





                share|improve this answer









                $endgroup$

















                  13












                  $begingroup$

                  Use MapAt, which accepts the same syntax as Part:



                  MapAt[Reverse, list, 2 ;; ;; 2]
                  (* 1, 2, 4, 3, 5, 6, 8, 7 *)





                  share|improve this answer









                  $endgroup$















                    13












                    13








                    13





                    $begingroup$

                    Use MapAt, which accepts the same syntax as Part:



                    MapAt[Reverse, list, 2 ;; ;; 2]
                    (* 1, 2, 4, 3, 5, 6, 8, 7 *)





                    share|improve this answer









                    $endgroup$



                    Use MapAt, which accepts the same syntax as Part:



                    MapAt[Reverse, list, 2 ;; ;; 2]
                    (* 1, 2, 4, 3, 5, 6, 8, 7 *)






                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Apr 9 at 20:33









                    marchmarch

                    17.6k22870




                    17.6k22870





















                        9












                        $begingroup$

                        Using Part and Span might not seem overly elegant but it is fast:



                        list = RandomReal[-1, 1, 100000, 10];

                        a = MapAt[Reverse, list, 2 ;; ;; 2]; // RepeatedTiming // First

                        b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First

                        c = Module[result = list,
                        result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
                        result
                        ]; // RepeatedTiming // First

                        a == b == c



                        0.11



                        0.317



                        0.0036



                        True







                        share|improve this answer











                        $endgroup$








                        • 2




                          $begingroup$
                          A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                          $endgroup$
                          – ciao
                          Apr 10 at 21:00















                        9












                        $begingroup$

                        Using Part and Span might not seem overly elegant but it is fast:



                        list = RandomReal[-1, 1, 100000, 10];

                        a = MapAt[Reverse, list, 2 ;; ;; 2]; // RepeatedTiming // First

                        b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First

                        c = Module[result = list,
                        result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
                        result
                        ]; // RepeatedTiming // First

                        a == b == c



                        0.11



                        0.317



                        0.0036



                        True







                        share|improve this answer











                        $endgroup$








                        • 2




                          $begingroup$
                          A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                          $endgroup$
                          – ciao
                          Apr 10 at 21:00













                        9












                        9








                        9





                        $begingroup$

                        Using Part and Span might not seem overly elegant but it is fast:



                        list = RandomReal[-1, 1, 100000, 10];

                        a = MapAt[Reverse, list, 2 ;; ;; 2]; // RepeatedTiming // First

                        b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First

                        c = Module[result = list,
                        result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
                        result
                        ]; // RepeatedTiming // First

                        a == b == c



                        0.11



                        0.317



                        0.0036



                        True







                        share|improve this answer











                        $endgroup$



                        Using Part and Span might not seem overly elegant but it is fast:



                        list = RandomReal[-1, 1, 100000, 10];

                        a = MapAt[Reverse, list, 2 ;; ;; 2]; // RepeatedTiming // First

                        b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First

                        c = Module[result = list,
                        result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
                        result
                        ]; // RepeatedTiming // First

                        a == b == c



                        0.11



                        0.317



                        0.0036



                        True








                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited Apr 10 at 6:12

























                        answered Apr 9 at 21:24









                        Henrik SchumacherHenrik Schumacher

                        60.2k582169




                        60.2k582169







                        • 2




                          $begingroup$
                          A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                          $endgroup$
                          – ciao
                          Apr 10 at 21:00












                        • 2




                          $begingroup$
                          A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                          $endgroup$
                          – ciao
                          Apr 10 at 21:00







                        2




                        2




                        $begingroup$
                        A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                        $endgroup$
                        – ciao
                        Apr 10 at 21:00




                        $begingroup$
                        A bit cleaner, s/b comparable in speed: Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
                        $endgroup$
                        – ciao
                        Apr 10 at 21:00











                        4












                        $begingroup$

                        Another method is to use ReplacePart:



                        ReplacePart[1, 2, 3, 4, 5, 6, 7, 8,
                        i_ ? EvenQ :> Reverse@list[[i]]
                        ]
                        (* 1,2,4,3,5,6,8,7 *)





                        share|improve this answer









                        $endgroup$

















                          4












                          $begingroup$

                          Another method is to use ReplacePart:



                          ReplacePart[1, 2, 3, 4, 5, 6, 7, 8,
                          i_ ? EvenQ :> Reverse@list[[i]]
                          ]
                          (* 1,2,4,3,5,6,8,7 *)





                          share|improve this answer









                          $endgroup$















                            4












                            4








                            4





                            $begingroup$

                            Another method is to use ReplacePart:



                            ReplacePart[1, 2, 3, 4, 5, 6, 7, 8,
                            i_ ? EvenQ :> Reverse@list[[i]]
                            ]
                            (* 1,2,4,3,5,6,8,7 *)





                            share|improve this answer









                            $endgroup$



                            Another method is to use ReplacePart:



                            ReplacePart[1, 2, 3, 4, 5, 6, 7, 8,
                            i_ ? EvenQ :> Reverse@list[[i]]
                            ]
                            (* 1,2,4,3,5,6,8,7 *)






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Apr 9 at 21:14









                            Jason B.Jason B.

                            48.9k389197




                            48.9k389197





















                                3












                                $begingroup$

                                This will work



                                list = 1, 2, 3, 4, 5, 6, 7, 8;

                                Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], i, 1, Length[list]]

                                (*1, 2, 4, 3, 5, 6, 8, 7*)
                                ```





                                share|improve this answer








                                New contributor




                                cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                Check out our Code of Conduct.






                                $endgroup$

















                                  3












                                  $begingroup$

                                  This will work



                                  list = 1, 2, 3, 4, 5, 6, 7, 8;

                                  Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], i, 1, Length[list]]

                                  (*1, 2, 4, 3, 5, 6, 8, 7*)
                                  ```





                                  share|improve this answer








                                  New contributor




                                  cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                  Check out our Code of Conduct.






                                  $endgroup$















                                    3












                                    3








                                    3





                                    $begingroup$

                                    This will work



                                    list = 1, 2, 3, 4, 5, 6, 7, 8;

                                    Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], i, 1, Length[list]]

                                    (*1, 2, 4, 3, 5, 6, 8, 7*)
                                    ```





                                    share|improve this answer








                                    New contributor




                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    $endgroup$



                                    This will work



                                    list = 1, 2, 3, 4, 5, 6, 7, 8;

                                    Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], i, 1, Length[list]]

                                    (*1, 2, 4, 3, 5, 6, 8, 7*)
                                    ```






                                    share|improve this answer








                                    New contributor




                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    share|improve this answer



                                    share|improve this answer






                                    New contributor




                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.









                                    answered Apr 9 at 23:16









                                    cphyscphys

                                    815




                                    815




                                    New contributor




                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.





                                    New contributor





                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






                                    cphys is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.



























                                        draft saved

                                        draft discarded
















































                                        Thanks for contributing an answer to Mathematica Stack Exchange!


                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid


                                        • Asking for help, clarification, or responding to other answers.

                                        • Making statements based on opinion; back them up with references or personal experience.

                                        Use MathJax to format equations. MathJax reference.


                                        To learn more, see our tips on writing great answers.




                                        draft saved


                                        draft discarded














                                        StackExchange.ready(
                                        function ()
                                        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194901%2fhow-to-reverse-every-other-sublist-of-a-list%23new-answer', 'question_page');

                                        );

                                        Post as a guest















                                        Required, but never shown





















































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown

































                                        Required, but never shown














                                        Required, but never shown












                                        Required, but never shown







                                        Required, but never shown







                                        Popular posts from this blog

                                        Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

                                        Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

                                        What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company