How to take the beginning and end parts of a list with simpler syntax?Calling Table with custom iteratorExpectation over a list with nested-mapped expressionsDeleting powers of a common prime except the highest one from a list with further only primesChange orientation of GradientOrientationFilter from high value to lowHow to return the unevaluated variable names from a list of variables which have been declaredHow can I make ListPlot use my iteration as the x coord?Build a list from applying a recursive function on another listHow to split list into segments based on first element of sublist, and remove ineligible segments

Te-form and かつ and も?

On the Rømer experiments and the speed if light

What is the maximum number of PC-controlled undead?

What are the uses and limitations of Persuasion, Insight, and Deception against other PCs?

create a tuple from pairs

Email address etiquette - Which address should I use to contact professors?

Tikzpicture - finish drawing a curved line for a cake slice

What gave Harry Potter the idea of writing in Tom Riddle's diary?

Acceptable to cut steak before searing?

Is it okay for a ticket seller to grab a tip in the USA?

Identification of vintage sloping window

How many different ways are there to checkmate in the early game?

How to avoid the "need" to learn more before conducting research?

CTCI Chapter 1 : Palindrome Permutation

What are the conventions for transcribing Semitic languages into Greek?

Not going forward with internship interview process

Does a code snippet compile? Or does it get compiled?

What happens if I delete an icloud backup?

Why do funding agencies like the NSF not publish accepted grants?

Was the 2019 Lion King film made through motion capture?

Continuous vertical line using booktabs in tabularx table?

How does 'AND' distribute over 'OR' (Set Theory)?

function evaluation - I don't get it

Is refreshing multiple times a test case for web applications?



How to take the beginning and end parts of a list with simpler syntax?


Calling Table with custom iteratorExpectation over a list with nested-mapped expressionsDeleting powers of a common prime except the highest one from a list with further only primesChange orientation of GradientOrientationFilter from high value to lowHow to return the unevaluated variable names from a list of variables which have been declaredHow can I make ListPlot use my iteration as the x coord?Build a list from applying a recursive function on another listHow to split list into segments based on first element of sublist, and remove ineligible segments






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








4












$begingroup$


So basically you have a table of some values, let's call it a:



a=Table[n,n,10];
(*1, 2, 3, 4, 5, 6, 7, 8, 9, 10*)


And you want to take the beginning and end parts of the table, within the same line, and do something with them. It is my intention to change them all to 0, but really you could change them to some other variable, say b. We want the parts of the list that do not include some inner values, we'll do 4,5,6 which happen to correspond to the indexes 4 through 6, convenient, no?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]] = b; a
(*b, b, b, 4, 5, 6, b, b, b, b*)


What's a simpler syntax for this? How can we call the end and beginning values of a list in a simpler manner?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]]
(*1, 2, 3, 7, 8, 9, 10*)


The ideal input would be, to me, something like



a[[1;;3;7;;10]]
(*1, 2, 3, 7, 8, 9, 10*)


But this gives



(*7, 8, 9, 10*)


As expected.



How can we simplify the syntax to call the beginning and end parts of a list, leaving out some chosen middle portion?










share|improve this question









$endgroup$









  • 1




    $begingroup$
    Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
    $endgroup$
    – LouisB
    10 hours ago






  • 1




    $begingroup$
    Complement[ a, 4, 5, 6 ]
    $endgroup$
    – LouisB
    9 hours ago






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    8 hours ago






  • 1




    $begingroup$
    If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
    $endgroup$
    – Michael E2
    6 hours ago






  • 1




    $begingroup$
    Thanks. I posted an answer. See if I understood correctly.
    $endgroup$
    – Michael E2
    6 hours ago

















4












$begingroup$


So basically you have a table of some values, let's call it a:



a=Table[n,n,10];
(*1, 2, 3, 4, 5, 6, 7, 8, 9, 10*)


And you want to take the beginning and end parts of the table, within the same line, and do something with them. It is my intention to change them all to 0, but really you could change them to some other variable, say b. We want the parts of the list that do not include some inner values, we'll do 4,5,6 which happen to correspond to the indexes 4 through 6, convenient, no?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]] = b; a
(*b, b, b, 4, 5, 6, b, b, b, b*)


What's a simpler syntax for this? How can we call the end and beginning values of a list in a simpler manner?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]]
(*1, 2, 3, 7, 8, 9, 10*)


The ideal input would be, to me, something like



a[[1;;3;7;;10]]
(*1, 2, 3, 7, 8, 9, 10*)


But this gives



(*7, 8, 9, 10*)


As expected.



How can we simplify the syntax to call the beginning and end parts of a list, leaving out some chosen middle portion?










share|improve this question









$endgroup$









  • 1




    $begingroup$
    Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
    $endgroup$
    – LouisB
    10 hours ago






  • 1




    $begingroup$
    Complement[ a, 4, 5, 6 ]
    $endgroup$
    – LouisB
    9 hours ago






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    8 hours ago






  • 1




    $begingroup$
    If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
    $endgroup$
    – Michael E2
    6 hours ago






  • 1




    $begingroup$
    Thanks. I posted an answer. See if I understood correctly.
    $endgroup$
    – Michael E2
    6 hours ago













4












4








4


1



$begingroup$


So basically you have a table of some values, let's call it a:



a=Table[n,n,10];
(*1, 2, 3, 4, 5, 6, 7, 8, 9, 10*)


And you want to take the beginning and end parts of the table, within the same line, and do something with them. It is my intention to change them all to 0, but really you could change them to some other variable, say b. We want the parts of the list that do not include some inner values, we'll do 4,5,6 which happen to correspond to the indexes 4 through 6, convenient, no?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]] = b; a
(*b, b, b, 4, 5, 6, b, b, b, b*)


What's a simpler syntax for this? How can we call the end and beginning values of a list in a simpler manner?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]]
(*1, 2, 3, 7, 8, 9, 10*)


The ideal input would be, to me, something like



a[[1;;3;7;;10]]
(*1, 2, 3, 7, 8, 9, 10*)


But this gives



(*7, 8, 9, 10*)


As expected.



How can we simplify the syntax to call the beginning and end parts of a list, leaving out some chosen middle portion?










share|improve this question









$endgroup$




So basically you have a table of some values, let's call it a:



a=Table[n,n,10];
(*1, 2, 3, 4, 5, 6, 7, 8, 9, 10*)


And you want to take the beginning and end parts of the table, within the same line, and do something with them. It is my intention to change them all to 0, but really you could change them to some other variable, say b. We want the parts of the list that do not include some inner values, we'll do 4,5,6 which happen to correspond to the indexes 4 through 6, convenient, no?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]] = b; a
(*b, b, b, 4, 5, 6, b, b, b, b*)


What's a simpler syntax for this? How can we call the end and beginning values of a list in a simpler manner?



a[[Cases[a, (Except[Alternatives @@ Range[4, 6]])]]]
(*1, 2, 3, 7, 8, 9, 10*)


The ideal input would be, to me, something like



a[[1;;3;7;;10]]
(*1, 2, 3, 7, 8, 9, 10*)


But this gives



(*7, 8, 9, 10*)


As expected.



How can we simplify the syntax to call the beginning and end parts of a list, leaving out some chosen middle portion?







list-manipulation syntax






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 10 hours ago









CA TrevillianCA Trevillian

5741 gold badge2 silver badges12 bronze badges




5741 gold badge2 silver badges12 bronze badges










  • 1




    $begingroup$
    Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
    $endgroup$
    – LouisB
    10 hours ago






  • 1




    $begingroup$
    Complement[ a, 4, 5, 6 ]
    $endgroup$
    – LouisB
    9 hours ago






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    8 hours ago






  • 1




    $begingroup$
    If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
    $endgroup$
    – Michael E2
    6 hours ago






  • 1




    $begingroup$
    Thanks. I posted an answer. See if I understood correctly.
    $endgroup$
    – Michael E2
    6 hours ago












  • 1




    $begingroup$
    Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
    $endgroup$
    – LouisB
    10 hours ago






  • 1




    $begingroup$
    Complement[ a, 4, 5, 6 ]
    $endgroup$
    – LouisB
    9 hours ago






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    8 hours ago






  • 1




    $begingroup$
    If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
    $endgroup$
    – Michael E2
    6 hours ago






  • 1




    $begingroup$
    Thanks. I posted an answer. See if I understood correctly.
    $endgroup$
    – Michael E2
    6 hours ago







1




1




$begingroup$
Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
$endgroup$
– LouisB
10 hours ago




$begingroup$
Select[ a, ! MemberQ[ 4, 5, 6, #] & ]
$endgroup$
– LouisB
10 hours ago




1




1




$begingroup$
Complement[ a, 4, 5, 6 ]
$endgroup$
– LouisB
9 hours ago




$begingroup$
Complement[ a, 4, 5, 6 ]
$endgroup$
– LouisB
9 hours ago




1




1




$begingroup$
Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
$endgroup$
– WReach
8 hours ago




$begingroup$
Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
$endgroup$
– WReach
8 hours ago




1




1




$begingroup$
If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
$endgroup$
– Michael E2
6 hours ago




$begingroup$
If it's the values, then in Table[n^2,n,10] the initial segment would be the span 1 ;; 1 and the final segment would be 3 ;; 10 and the excluded segment (the positions not to be changed) would be 2 ;; 2, if the excluded values were 4, 5, 6 -- no?
$endgroup$
– Michael E2
6 hours ago




1




1




$begingroup$
Thanks. I posted an answer. See if I understood correctly.
$endgroup$
– Michael E2
6 hours ago




$begingroup$
Thanks. I posted an answer. See if I understood correctly.
$endgroup$
– Michael E2
6 hours ago










5 Answers
5






active

oldest

votes


















6












$begingroup$

Update: You can also try MapAt:



a = Range[10];
a = MapAt[b &, a, ;; 3, 7 ;;]



b, b, b, 4, 5, 6, b, b, b, b




Or ReplaceAll



a = Range[10];
a /. Alternatives @@ Drop[a, 4;;6] -> b



b, b, b, 4, 5, 6, b, b, b, b




Original answer: Try Drop:



Drop[Range @ 10, 4, 6]



1, 2, 3, 7, 8, 9, 10




Drop[Range @ 10, 4 ;; 6]




1, 2, 3, 7, 8, 9, 10





Drop[CharacterRange["a", "j"], 4, 6]



"a", "b", "c", "g", "h", "i", "j"







share|improve this answer











$endgroup$










  • 1




    $begingroup$
    Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
    $endgroup$
    – CA Trevillian
    10 hours ago


















3












$begingroup$

We can use Union[] to perform this operation in a simpler manner:



a[[Range[1, 3] [Union] Range[7, 10]]]
(*1, 2, 3, 7, 8, 9, 10*)


But this is still decently messy, and the readability is not too high. Perhaps someone else has a better method?



a[[Range[1, 3] [Union] Range[7, 10]]] = b; a
(*b, b, b, 4, 5, 6, b, b, b, b*)





share|improve this answer









$endgroup$






















    3












    $begingroup$

    If it is okay to perform two assignments instead of one, then we can write:



    (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10


    Scan is probably better since it does not bother constructing the result list that we are just going to discard anyway:



    Scan[(a[[#]] = b) &, 1 ;; 3, 7 ;; 10]





    share|improve this answer









    $endgroup$














    • $begingroup$
      Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
      $endgroup$
      – CA Trevillian
      8 hours ago


















    3












    $begingroup$

    Perhaps this?:



    ReplacePart[Range@10, i_ /; Not[4 <= i <= 6] :> b]
    (* b, b, b, 4, 5, 6, b, b, b, b *)





    share|improve this answer









    $endgroup$














    • $begingroup$
      Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
      $endgroup$
      – CA Trevillian
      6 hours ago






    • 1




      $begingroup$
      @CATrevillian Yes, it depends only on the index (part/position), not the value.
      $endgroup$
      – Michael E2
      6 hours ago


















    2












    $begingroup$

    By far the simplest way is to do it in two lines:



    a = Table[RandomReal[], n, 10];
    a[[1 ;; 3]] = b;
    a[[7 ;; 10]] = b;
    a


    This gives the output:




    b, b, b, 0.378846, 0.475894, 0.533768, b, b, b, b







    share|improve this answer











    $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%2f203601%2fhow-to-take-the-beginning-and-end-parts-of-a-list-with-simpler-syntax%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      5 Answers
      5






      active

      oldest

      votes








      5 Answers
      5






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      6












      $begingroup$

      Update: You can also try MapAt:



      a = Range[10];
      a = MapAt[b &, a, ;; 3, 7 ;;]



      b, b, b, 4, 5, 6, b, b, b, b




      Or ReplaceAll



      a = Range[10];
      a /. Alternatives @@ Drop[a, 4;;6] -> b



      b, b, b, 4, 5, 6, b, b, b, b




      Original answer: Try Drop:



      Drop[Range @ 10, 4, 6]



      1, 2, 3, 7, 8, 9, 10




      Drop[Range @ 10, 4 ;; 6]




      1, 2, 3, 7, 8, 9, 10





      Drop[CharacterRange["a", "j"], 4, 6]



      "a", "b", "c", "g", "h", "i", "j"







      share|improve this answer











      $endgroup$










      • 1




        $begingroup$
        Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
        $endgroup$
        – CA Trevillian
        10 hours ago















      6












      $begingroup$

      Update: You can also try MapAt:



      a = Range[10];
      a = MapAt[b &, a, ;; 3, 7 ;;]



      b, b, b, 4, 5, 6, b, b, b, b




      Or ReplaceAll



      a = Range[10];
      a /. Alternatives @@ Drop[a, 4;;6] -> b



      b, b, b, 4, 5, 6, b, b, b, b




      Original answer: Try Drop:



      Drop[Range @ 10, 4, 6]



      1, 2, 3, 7, 8, 9, 10




      Drop[Range @ 10, 4 ;; 6]




      1, 2, 3, 7, 8, 9, 10





      Drop[CharacterRange["a", "j"], 4, 6]



      "a", "b", "c", "g", "h", "i", "j"







      share|improve this answer











      $endgroup$










      • 1




        $begingroup$
        Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
        $endgroup$
        – CA Trevillian
        10 hours ago













      6












      6








      6





      $begingroup$

      Update: You can also try MapAt:



      a = Range[10];
      a = MapAt[b &, a, ;; 3, 7 ;;]



      b, b, b, 4, 5, 6, b, b, b, b




      Or ReplaceAll



      a = Range[10];
      a /. Alternatives @@ Drop[a, 4;;6] -> b



      b, b, b, 4, 5, 6, b, b, b, b




      Original answer: Try Drop:



      Drop[Range @ 10, 4, 6]



      1, 2, 3, 7, 8, 9, 10




      Drop[Range @ 10, 4 ;; 6]




      1, 2, 3, 7, 8, 9, 10





      Drop[CharacterRange["a", "j"], 4, 6]



      "a", "b", "c", "g", "h", "i", "j"







      share|improve this answer











      $endgroup$



      Update: You can also try MapAt:



      a = Range[10];
      a = MapAt[b &, a, ;; 3, 7 ;;]



      b, b, b, 4, 5, 6, b, b, b, b




      Or ReplaceAll



      a = Range[10];
      a /. Alternatives @@ Drop[a, 4;;6] -> b



      b, b, b, 4, 5, 6, b, b, b, b




      Original answer: Try Drop:



      Drop[Range @ 10, 4, 6]



      1, 2, 3, 7, 8, 9, 10




      Drop[Range @ 10, 4 ;; 6]




      1, 2, 3, 7, 8, 9, 10





      Drop[CharacterRange["a", "j"], 4, 6]



      "a", "b", "c", "g", "h", "i", "j"








      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 32 mins ago

























      answered 10 hours ago









      kglrkglr

      210k10 gold badges241 silver badges481 bronze badges




      210k10 gold badges241 silver badges481 bronze badges










      • 1




        $begingroup$
        Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
        $endgroup$
        – CA Trevillian
        10 hours ago












      • 1




        $begingroup$
        Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
        $endgroup$
        – CA Trevillian
        10 hours ago







      1




      1




      $begingroup$
      Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
      $endgroup$
      – CA Trevillian
      10 hours ago




      $begingroup$
      Hah, shot myself in the foot with my end question...That works to get the values, but I'm unsure of the readability when we do a[[Drop[Range@10, 4, 6]]] = b; a. Though, it is a nice implementation and one I had not considered. I'm hoping to find something that is not too over-encumbered, in order to sit in a publication. This is much nicer than the original try of mine, and it only uses the definition of the neglected characters. Quite nice, actually, the more I debate it! Much more general of an approach. +1
      $endgroup$
      – CA Trevillian
      10 hours ago













      3












      $begingroup$

      We can use Union[] to perform this operation in a simpler manner:



      a[[Range[1, 3] [Union] Range[7, 10]]]
      (*1, 2, 3, 7, 8, 9, 10*)


      But this is still decently messy, and the readability is not too high. Perhaps someone else has a better method?



      a[[Range[1, 3] [Union] Range[7, 10]]] = b; a
      (*b, b, b, 4, 5, 6, b, b, b, b*)





      share|improve this answer









      $endgroup$



















        3












        $begingroup$

        We can use Union[] to perform this operation in a simpler manner:



        a[[Range[1, 3] [Union] Range[7, 10]]]
        (*1, 2, 3, 7, 8, 9, 10*)


        But this is still decently messy, and the readability is not too high. Perhaps someone else has a better method?



        a[[Range[1, 3] [Union] Range[7, 10]]] = b; a
        (*b, b, b, 4, 5, 6, b, b, b, b*)





        share|improve this answer









        $endgroup$

















          3












          3








          3





          $begingroup$

          We can use Union[] to perform this operation in a simpler manner:



          a[[Range[1, 3] [Union] Range[7, 10]]]
          (*1, 2, 3, 7, 8, 9, 10*)


          But this is still decently messy, and the readability is not too high. Perhaps someone else has a better method?



          a[[Range[1, 3] [Union] Range[7, 10]]] = b; a
          (*b, b, b, 4, 5, 6, b, b, b, b*)





          share|improve this answer









          $endgroup$



          We can use Union[] to perform this operation in a simpler manner:



          a[[Range[1, 3] [Union] Range[7, 10]]]
          (*1, 2, 3, 7, 8, 9, 10*)


          But this is still decently messy, and the readability is not too high. Perhaps someone else has a better method?



          a[[Range[1, 3] [Union] Range[7, 10]]] = b; a
          (*b, b, b, 4, 5, 6, b, b, b, b*)






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 10 hours ago









          CA TrevillianCA Trevillian

          5741 gold badge2 silver badges12 bronze badges




          5741 gold badge2 silver badges12 bronze badges
























              3












              $begingroup$

              If it is okay to perform two assignments instead of one, then we can write:



              (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10


              Scan is probably better since it does not bother constructing the result list that we are just going to discard anyway:



              Scan[(a[[#]] = b) &, 1 ;; 3, 7 ;; 10]





              share|improve this answer









              $endgroup$














              • $begingroup$
                Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
                $endgroup$
                – CA Trevillian
                8 hours ago















              3












              $begingroup$

              If it is okay to perform two assignments instead of one, then we can write:



              (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10


              Scan is probably better since it does not bother constructing the result list that we are just going to discard anyway:



              Scan[(a[[#]] = b) &, 1 ;; 3, 7 ;; 10]





              share|improve this answer









              $endgroup$














              • $begingroup$
                Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
                $endgroup$
                – CA Trevillian
                8 hours ago













              3












              3








              3





              $begingroup$

              If it is okay to perform two assignments instead of one, then we can write:



              (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10


              Scan is probably better since it does not bother constructing the result list that we are just going to discard anyway:



              Scan[(a[[#]] = b) &, 1 ;; 3, 7 ;; 10]





              share|improve this answer









              $endgroup$



              If it is okay to perform two assignments instead of one, then we can write:



              (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10


              Scan is probably better since it does not bother constructing the result list that we are just going to discard anyway:



              Scan[(a[[#]] = b) &, 1 ;; 3, 7 ;; 10]






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 8 hours ago









              WReachWReach

              54.8k2 gold badges118 silver badges217 bronze badges




              54.8k2 gold badges118 silver badges217 bronze badges














              • $begingroup$
                Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
                $endgroup$
                – CA Trevillian
                8 hours ago
















              • $begingroup$
                Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
                $endgroup$
                – CA Trevillian
                8 hours ago















              $begingroup$
              Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
              $endgroup$
              – CA Trevillian
              8 hours ago




              $begingroup$
              Well aaactually--that was the original reason for this question, and I probably could have written that....but I can't remember what cup of coffee I was on at that point! Regardless, this is a great implementation of a pure function applied to an index being used in a functional reassignment. This is technically in one line too, which satisfied my original criteria! Very cool. I wonder if this can be shorted at all for some sort-of code-golf-like...thing...answer? (Hint-hint, but it'd require some user thought) Oooooh scan, yessiree this is a great one, Scan needs more use these days, imo.
              $endgroup$
              – CA Trevillian
              8 hours ago











              3












              $begingroup$

              Perhaps this?:



              ReplacePart[Range@10, i_ /; Not[4 <= i <= 6] :> b]
              (* b, b, b, 4, 5, 6, b, b, b, b *)





              share|improve this answer









              $endgroup$














              • $begingroup$
                Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
                $endgroup$
                – CA Trevillian
                6 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                6 hours ago















              3












              $begingroup$

              Perhaps this?:



              ReplacePart[Range@10, i_ /; Not[4 <= i <= 6] :> b]
              (* b, b, b, 4, 5, 6, b, b, b, b *)





              share|improve this answer









              $endgroup$














              • $begingroup$
                Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
                $endgroup$
                – CA Trevillian
                6 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                6 hours ago













              3












              3








              3





              $begingroup$

              Perhaps this?:



              ReplacePart[Range@10, i_ /; Not[4 <= i <= 6] :> b]
              (* b, b, b, 4, 5, 6, b, b, b, b *)





              share|improve this answer









              $endgroup$



              Perhaps this?:



              ReplacePart[Range@10, i_ /; Not[4 <= i <= 6] :> b]
              (* b, b, b, 4, 5, 6, b, b, b, b *)






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered 6 hours ago









              Michael E2Michael E2

              157k13 gold badges215 silver badges511 bronze badges




              157k13 gold badges215 silver badges511 bronze badges














              • $begingroup$
                Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
                $endgroup$
                – CA Trevillian
                6 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                6 hours ago
















              • $begingroup$
                Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
                $endgroup$
                – CA Trevillian
                6 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                6 hours ago















              $begingroup$
              Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
              $endgroup$
              – CA Trevillian
              6 hours ago




              $begingroup$
              Wow nice!! I like the use of RuleDelayed, am I correct in understanding that you could use either Table[n,n,10] or Table[n^2,n,10] and we should see the 4th-6th indexed values preserved, as ReplacePart replaces the ith index? The use of Not provides a good deal of readability as well.
              $endgroup$
              – CA Trevillian
              6 hours ago




              1




              1




              $begingroup$
              @CATrevillian Yes, it depends only on the index (part/position), not the value.
              $endgroup$
              – Michael E2
              6 hours ago




              $begingroup$
              @CATrevillian Yes, it depends only on the index (part/position), not the value.
              $endgroup$
              – Michael E2
              6 hours ago











              2












              $begingroup$

              By far the simplest way is to do it in two lines:



              a = Table[RandomReal[], n, 10];
              a[[1 ;; 3]] = b;
              a[[7 ;; 10]] = b;
              a


              This gives the output:




              b, b, b, 0.378846, 0.475894, 0.533768, b, b, b, b







              share|improve this answer











              $endgroup$



















                2












                $begingroup$

                By far the simplest way is to do it in two lines:



                a = Table[RandomReal[], n, 10];
                a[[1 ;; 3]] = b;
                a[[7 ;; 10]] = b;
                a


                This gives the output:




                b, b, b, 0.378846, 0.475894, 0.533768, b, b, b, b







                share|improve this answer











                $endgroup$

















                  2












                  2








                  2





                  $begingroup$

                  By far the simplest way is to do it in two lines:



                  a = Table[RandomReal[], n, 10];
                  a[[1 ;; 3]] = b;
                  a[[7 ;; 10]] = b;
                  a


                  This gives the output:




                  b, b, b, 0.378846, 0.475894, 0.533768, b, b, b, b







                  share|improve this answer











                  $endgroup$



                  By far the simplest way is to do it in two lines:



                  a = Table[RandomReal[], n, 10];
                  a[[1 ;; 3]] = b;
                  a[[7 ;; 10]] = b;
                  a


                  This gives the output:




                  b, b, b, 0.378846, 0.475894, 0.533768, b, b, b, b








                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 20 mins ago

























                  answered 3 hours ago









                  axsvl77axsvl77

                  4773 silver badges16 bronze badges




                  4773 silver badges16 bronze badges






























                      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%2f203601%2fhow-to-take-the-beginning-and-end-parts-of-a-list-with-simpler-syntax%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

                      19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу

                      Israel Cuprins Etimologie | Istorie | Geografie | Politică | Demografie | Educație | Economie | Cultură | Note explicative | Note bibliografice | Bibliografie | Legături externe | Meniu de navigaresite web oficialfacebooktweeterGoogle+Instagramcanal YouTubeInstagramtextmodificaremodificarewww.technion.ac.ilnew.huji.ac.ilwww.weizmann.ac.ilwww1.biu.ac.ilenglish.tau.ac.ilwww.haifa.ac.ilin.bgu.ac.ilwww.openu.ac.ilwww.ariel.ac.ilCIA FactbookHarta Israelului"Negotiating Jerusalem," Palestine–Israel JournalThe Schizoid Nature of Modern Hebrew: A Slavic Language in Search of a Semitic Past„Arabic in Israel: an official language and a cultural bridge”„Latest Population Statistics for Israel”„Israel Population”„Tables”„Report for Selected Countries and Subjects”Human Development Report 2016: Human Development for Everyone„Distribution of family income - Gini index”The World FactbookJerusalem Law„Israel”„Israel”„Zionist Leaders: David Ben-Gurion 1886–1973”„The status of Jerusalem”„Analysis: Kadima's big plans”„Israel's Hard-Learned Lessons”„The Legacy of Undefined Borders, Tel Aviv Notes No. 40, 5 iunie 2002”„Israel Journal: A Land Without Borders”„Population”„Israel closes decade with population of 7.5 million”Time Series-DataBank„Selected Statistics on Jerusalem Day 2007 (Hebrew)”Golan belongs to Syria, Druze protestGlobal Survey 2006: Middle East Progress Amid Global Gains in FreedomWHO: Life expectancy in Israel among highest in the worldInternational Monetary Fund, World Economic Outlook Database, April 2011: Nominal GDP list of countries. Data for the year 2010.„Israel's accession to the OECD”Popular Opinion„On the Move”Hosea 12:5„Walking the Bible Timeline”„Palestine: History”„Return to Zion”An invention called 'the Jewish people' – Haaretz – Israel NewsoriginalJewish and Non-Jewish Population of Palestine-Israel (1517–2004)ImmigrationJewishvirtuallibrary.orgChapter One: The Heralders of Zionism„The birth of modern Israel: A scrap of paper that changed history”„League of Nations: The Mandate for Palestine, 24 iulie 1922”The Population of Palestine Prior to 1948originalBackground Paper No. 47 (ST/DPI/SER.A/47)History: Foreign DominationTwo Hundred and Seventh Plenary Meeting„Israel (Labor Zionism)”Population, by Religion and Population GroupThe Suez CrisisAdolf EichmannJustice Ministry Reply to Amnesty International Report„The Interregnum”Israel Ministry of Foreign Affairs – The Palestinian National Covenant- July 1968Research on terrorism: trends, achievements & failuresThe Routledge Atlas of the Arab–Israeli conflict: The Complete History of the Struggle and the Efforts to Resolve It"George Habash, Palestinian Terrorism Tactician, Dies at 82."„1973: Arab states attack Israeli forces”Agranat Commission„Has Israel Annexed East Jerusalem?”original„After 4 Years, Intifada Still Smolders”From the End of the Cold War to 2001originalThe Oslo Accords, 1993Israel-PLO Recognition – Exchange of Letters between PM Rabin and Chairman Arafat – Sept 9- 1993Foundation for Middle East PeaceSources of Population Growth: Total Israeli Population and Settler Population, 1991–2003original„Israel marks Rabin assassination”The Wye River Memorandumoriginal„West Bank barrier route disputed, Israeli missile kills 2”"Permanent Ceasefire to Be Based on Creation Of Buffer Zone Free of Armed Personnel Other than UN, Lebanese Forces"„Hezbollah kills 8 soldiers, kidnaps two in offensive on northern border”„Olmert confirms peace talks with Syria”„Battleground Gaza: Israeli ground forces invade the strip”„IDF begins Gaza troop withdrawal, hours after ending 3-week offensive”„THE LAND: Geography and Climate”„Area of districts, sub-districts, natural regions and lakes”„Israel - Geography”„Makhteshim Country”Israel and the Palestinian Territories„Makhtesh Ramon”„The Living Dead Sea”„Temperatures reach record high in Pakistan”„Climate Extremes In Israel”Israel in figures„Deuteronom”„JNF: 240 million trees planted since 1901”„Vegetation of Israel and Neighboring Countries”Environmental Law in Israel„Executive branch”„Israel's election process explained”„The Electoral System in Israel”„Constitution for Israel”„All 120 incoming Knesset members”„Statul ISRAEL”„The Judiciary: The Court System”„Israel's high court unique in region”„Israel and the International Criminal Court: A Legal Battlefield”„Localities and population, by population group, district, sub-district and natural region”„Israel: Districts, Major Cities, Urban Localities & Metropolitan Areas”„Israel-Egypt Relations: Background & Overview of Peace Treaty”„Solana to Haaretz: New Rules of War Needed for Age of Terror”„Israel's Announcement Regarding Settlements”„United Nations Security Council Resolution 497”„Security Council resolution 478 (1980) on the status of Jerusalem”„Arabs will ask U.N. to seek razing of Israeli wall”„Olmert: Willing to trade land for peace”„Mapping Peace between Syria and Israel”„Egypt: Israel must accept the land-for-peace formula”„Israel: Age structure from 2005 to 2015”„Global, regional, and national disability-adjusted life years (DALYs) for 306 diseases and injuries and healthy life expectancy (HALE) for 188 countries, 1990–2013: quantifying the epidemiological transition”10.1016/S0140-6736(15)61340-X„World Health Statistics 2014”„Life expectancy for Israeli men world's 4th highest”„Family Structure and Well-Being Across Israel's Diverse Population”„Fertility among Jewish and Muslim Women in Israel, by Level of Religiosity, 1979-2009”„Israel leaders in birth rate, but poverty major challenge”„Ethnic Groups”„Israel's population: Over 8.5 million”„Israel - Ethnic groups”„Jews, by country of origin and age”„Minority Communities in Israel: Background & Overview”„Israel”„Language in Israel”„Selected Data from the 2011 Social Survey on Mastery of the Hebrew Language and Usage of Languages”„Religions”„5 facts about Israeli Druze, a unique religious and ethnic group”„Israël”Israel Country Study Guide„Haredi city in Negev – blessing or curse?”„New town Harish harbors hopes of being more than another Pleasantville”„List of localities, in alphabetical order”„Muncitorii români, doriți în Israel”„Prietenia româno-israeliană la nevoie se cunoaște”„The Higher Education System in Israel”„Middle East”„Academic Ranking of World Universities 2016”„Israel”„Israel”„Jewish Nobel Prize Winners”„All Nobel Prizes in Literature”„All Nobel Peace Prizes”„All Prizes in Economic Sciences”„All Nobel Prizes in Chemistry”„List of Fields Medallists”„Sakharov Prize”„Țara care și-a sfidat "destinul" și se bate umăr la umăr cu Silicon Valley”„Apple's R&D center in Israel grew to about 800 employees”„Tim Cook: Apple's Herzliya R&D center second-largest in world”„Lecții de economie de la Israel”„Land use”Israel Investment and Business GuideA Country Study: IsraelCentral Bureau of StatisticsFlorin Diaconu, „Kadima: Flexibilitate și pragmatism, dar nici un compromis în chestiuni vitale", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 71-72Florin Diaconu, „Likud: Dreapta israeliană constant opusă retrocedării teritoriilor cureite prin luptă în 1967", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 73-74MassadaIsraelul a crescut in 50 de ani cât alte state intr-un mileniuIsrael Government PortalIsraelIsraelIsraelmmmmmXX451232cb118646298(data)4027808-634110000 0004 0372 0767n7900328503691455-bb46-37e3-91d2-cb064a35ffcc1003570400564274ge1294033523775214929302638955X146498911146498911

                      Кастелфранко ди Сопра Становништво Референце Спољашње везе Мени за навигацију43°37′18″ СГШ; 11°33′32″ ИГД / 43.62156° СГШ; 11.55885° ИГД / 43.62156; 11.5588543°37′18″ СГШ; 11°33′32″ ИГД / 43.62156° СГШ; 11.55885° ИГД / 43.62156; 11.558853179688„The GeoNames geographical database”„Istituto Nazionale di Statistica”проширитиууWorldCat156923403n850174324558639-1cb14643287r(подаци)