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

What does "sardine box" mean?

How does "Te vas a cansar" mean "You're going to get tired"?

Write an interpreter for *

What does Apple mean by "This may decrease battery life"?

As a 16 year old, how can I keep my money safe from my mother?

Double redundancy for the Saturn V LVDC computer memory, how were disagreements resolved?

try/finally with bash shell

If "more guns less crime", how do gun advocates explain that the EU has less crime than the US?

What is the length of pair of wires after twisting them around each other?

Why are Gatwick's runways too close together?

CTCI Chapter 1 : Palindrome Permutation

A simple stop watch which I want to extend

Trying to write a shell script that keeps testing a server remotely, but it keeps falling in else statement when I logout

Why isn’t SHA-3 in wider use?

Is there a way to unplug the Raspberry pi safely without shutting down

I accidentally overwrote a Linux binary file

AsyncDictionary - Can you break thread safety?

Are differences between uniformly distributed numbers uniformly distributed?

Does this Foo machine halt?

English - Acceptable use of parentheses in an author's name

What game uses dice with sides powers of 2?

Generate Brainfuck for the numbers 1–255

A tool to replace all words with antonyms

Am I overreacting to my team leader's unethical requests?



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
    8 hours ago






  • 1




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






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    7 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
    5 hours ago






  • 1




    $begingroup$
    Thanks. I posted an answer. See if I understood correctly.
    $endgroup$
    – Michael E2
    5 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
    8 hours ago






  • 1




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






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    7 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
    5 hours ago






  • 1




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













4












4








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$




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 9 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
    8 hours ago






  • 1




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






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    7 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
    5 hours ago






  • 1




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












  • 1




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






  • 1




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






  • 1




    $begingroup$
    Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
    $endgroup$
    – WReach
    7 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
    5 hours ago






  • 1




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







1




1




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




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




1




1




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




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




1




1




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




$begingroup$
Cheating a little, we could write (a[[#]] = b) & /@ 1 ;; 3, 7 ;; 10.
$endgroup$
– WReach
7 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
5 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
5 hours ago




1




1




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




$begingroup$
Thanks. I posted an answer. See if I understood correctly.
$endgroup$
– Michael E2
5 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
    9 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
      7 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
      4 hours ago






    • 1




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


















    1












    $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
        9 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
        9 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 2 hours ago

























      answered 9 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
        9 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
        9 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
      9 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
      9 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 9 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
                7 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
                7 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 7 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
                7 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
                7 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
              7 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
              7 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
                4 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                4 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
                4 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                4 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 5 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
                4 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                4 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
                4 hours ago






              • 1




                $begingroup$
                @CATrevillian Yes, it depends only on the index (part/position), not the value.
                $endgroup$
                – Michael E2
                4 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
              4 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
              4 hours ago




              1




              1




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




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











              1












              $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$



















                1












                $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$

















                  1












                  1








                  1





                  $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










                  answered 2 hours ago









                  axsvl77axsvl77

                  4673 silver badges16 bronze badges




                  4673 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

                      Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                      Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                      199年 目錄 大件事 到箇年出世嗰人 到箇年死嗰人 節慶、風俗習慣 導覽選單