How to reverse every other sublist of a list?
$begingroup$
I have a list with sublists list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}
. I would like to reverse every other sublist, starting from the second one. The result would look like result = {{1, 2}, {4, 3}, {5, 6}, {8, 7}}
. What would be a simple way to do this?
list-manipulation
$endgroup$
add a comment |
$begingroup$
I have a list with sublists list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}
. I would like to reverse every other sublist, starting from the second one. The result would look like result = {{1, 2}, {4, 3}, {5, 6}, {8, 7}}
. What would be a simple way to do this?
list-manipulation
$endgroup$
add a comment |
$begingroup$
I have a list with sublists list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}
. I would like to reverse every other sublist, starting from the second one. The result would look like result = {{1, 2}, {4, 3}, {5, 6}, {8, 7}}
. What would be a simple way to do this?
list-manipulation
$endgroup$
I have a list with sublists list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}
. I would like to reverse every other sublist, starting from the second one. The result would look like result = {{1, 2}, {4, 3}, {5, 6}, {8, 7}}
. What would be a simple way to do this?
list-manipulation
list-manipulation
asked 2 days ago
nanjunnanjun
44429
44429
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
$begingroup$
Use MapAt
, which accepts the same syntax as Part
:
MapAt[Reverse, list, {2 ;; ;; 2}]
(* {{1, 2}, {4, 3}, {5, 6}, {8, 7}} *)
$endgroup$
add a comment |
$begingroup$
Using Part
and Span
might not seem overly elegant but it is fast:
list = RandomReal[{-1, 1}, {100000, 10}];
a = MapAt[Reverse, list, {2 ;; ;; 2}]; // RepeatedTiming // First
b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First
c = Module[{result = list},
result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
result
]; // RepeatedTiming // First
a == b == c
0.11
0.317
0.0036
True
$endgroup$
2
$begingroup$
A bit cleaner, s/b comparable in speed:Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
add a comment |
$begingroup$
Another method is to use ReplacePart
:
ReplacePart[{{1, 2}, {3, 4}, {5, 6}, {7, 8}},
i_ ? EvenQ :> Reverse@list[[i]]
]
(* {{1,2},{4,3},{5,6},{8,7}} *)
$endgroup$
add a comment |
$begingroup$
This will work
list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], {i, 1, Length[list]}]
(*{{1, 2}, {4, 3}, {5, 6}, {8, 7}}*)
```
New contributor
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194901%2fhow-to-reverse-every-other-sublist-of-a-list%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Use MapAt
, which accepts the same syntax as Part
:
MapAt[Reverse, list, {2 ;; ;; 2}]
(* {{1, 2}, {4, 3}, {5, 6}, {8, 7}} *)
$endgroup$
add a comment |
$begingroup$
Use MapAt
, which accepts the same syntax as Part
:
MapAt[Reverse, list, {2 ;; ;; 2}]
(* {{1, 2}, {4, 3}, {5, 6}, {8, 7}} *)
$endgroup$
add a comment |
$begingroup$
Use MapAt
, which accepts the same syntax as Part
:
MapAt[Reverse, list, {2 ;; ;; 2}]
(* {{1, 2}, {4, 3}, {5, 6}, {8, 7}} *)
$endgroup$
Use MapAt
, which accepts the same syntax as Part
:
MapAt[Reverse, list, {2 ;; ;; 2}]
(* {{1, 2}, {4, 3}, {5, 6}, {8, 7}} *)
answered 2 days ago
marchmarch
17.6k22770
17.6k22770
add a comment |
add a comment |
$begingroup$
Using Part
and Span
might not seem overly elegant but it is fast:
list = RandomReal[{-1, 1}, {100000, 10}];
a = MapAt[Reverse, list, {2 ;; ;; 2}]; // RepeatedTiming // First
b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First
c = Module[{result = list},
result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
result
]; // RepeatedTiming // First
a == b == c
0.11
0.317
0.0036
True
$endgroup$
2
$begingroup$
A bit cleaner, s/b comparable in speed:Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
add a comment |
$begingroup$
Using Part
and Span
might not seem overly elegant but it is fast:
list = RandomReal[{-1, 1}, {100000, 10}];
a = MapAt[Reverse, list, {2 ;; ;; 2}]; // RepeatedTiming // First
b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First
c = Module[{result = list},
result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
result
]; // RepeatedTiming // First
a == b == c
0.11
0.317
0.0036
True
$endgroup$
2
$begingroup$
A bit cleaner, s/b comparable in speed:Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
add a comment |
$begingroup$
Using Part
and Span
might not seem overly elegant but it is fast:
list = RandomReal[{-1, 1}, {100000, 10}];
a = MapAt[Reverse, list, {2 ;; ;; 2}]; // RepeatedTiming // First
b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First
c = Module[{result = list},
result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
result
]; // RepeatedTiming // First
a == b == c
0.11
0.317
0.0036
True
$endgroup$
Using Part
and Span
might not seem overly elegant but it is fast:
list = RandomReal[{-1, 1}, {100000, 10}];
a = MapAt[Reverse, list, {2 ;; ;; 2}]; // RepeatedTiming // First
b = ReplacePart[list, i_?EvenQ :> Reverse@list[[i]]]; // RepeatedTiming // First
c = Module[{result = list},
result[[2 ;; ;; 2]] = list[[2 ;; ;; 2, -1 ;; 1 ;; -1]];
result
]; // RepeatedTiming // First
a == b == c
0.11
0.317
0.0036
True
edited yesterday
answered 2 days ago
Henrik SchumacherHenrik Schumacher
59.9k582167
59.9k582167
2
$begingroup$
A bit cleaner, s/b comparable in speed:Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
add a comment |
2
$begingroup$
A bit cleaner, s/b comparable in speed:Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
2
2
$begingroup$
A bit cleaner, s/b comparable in speed:
Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
$begingroup$
A bit cleaner, s/b comparable in speed:
Riffle[list[[;; ;; 2]], list[[2 ;; ;; 2, -1 ;; 1 ;; -1]]]
$endgroup$
– ciao
yesterday
add a comment |
$begingroup$
Another method is to use ReplacePart
:
ReplacePart[{{1, 2}, {3, 4}, {5, 6}, {7, 8}},
i_ ? EvenQ :> Reverse@list[[i]]
]
(* {{1,2},{4,3},{5,6},{8,7}} *)
$endgroup$
add a comment |
$begingroup$
Another method is to use ReplacePart
:
ReplacePart[{{1, 2}, {3, 4}, {5, 6}, {7, 8}},
i_ ? EvenQ :> Reverse@list[[i]]
]
(* {{1,2},{4,3},{5,6},{8,7}} *)
$endgroup$
add a comment |
$begingroup$
Another method is to use ReplacePart
:
ReplacePart[{{1, 2}, {3, 4}, {5, 6}, {7, 8}},
i_ ? EvenQ :> Reverse@list[[i]]
]
(* {{1,2},{4,3},{5,6},{8,7}} *)
$endgroup$
Another method is to use ReplacePart
:
ReplacePart[{{1, 2}, {3, 4}, {5, 6}, {7, 8}},
i_ ? EvenQ :> Reverse@list[[i]]
]
(* {{1,2},{4,3},{5,6},{8,7}} *)
answered 2 days ago
Jason B.Jason B.
48.9k389197
48.9k389197
add a comment |
add a comment |
$begingroup$
This will work
list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], {i, 1, Length[list]}]
(*{{1, 2}, {4, 3}, {5, 6}, {8, 7}}*)
```
New contributor
$endgroup$
add a comment |
$begingroup$
This will work
list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], {i, 1, Length[list]}]
(*{{1, 2}, {4, 3}, {5, 6}, {8, 7}}*)
```
New contributor
$endgroup$
add a comment |
$begingroup$
This will work
list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], {i, 1, Length[list]}]
(*{{1, 2}, {4, 3}, {5, 6}, {8, 7}}*)
```
New contributor
$endgroup$
This will work
list = {{1, 2}, {3, 4}, {5, 6}, {7, 8}};
Table[If[EvenQ[i], Reverse[list[[i]]], list[[i]]], {i, 1, Length[list]}]
(*{{1, 2}, {4, 3}, {5, 6}, {8, 7}}*)
```
New contributor
New contributor
answered 2 days ago
cphyscphys
815
815
New contributor
New contributor
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194901%2fhow-to-reverse-every-other-sublist-of-a-list%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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