Set in Elemente zerlegen?
Sep 07 2020
Bei einer Liste von Tupeln, bei denen ein Element eine Menge ist:
{{{}, "a"}, {{1}, "a"}, {{2}, "a"}, {{3}, "a"}, {{1, 2},
"a"}, {{1, 3}, "a"}, {{2, 3}, "a"}, {{1, 2, 3}, "a"}}
Welches ist die Funktion, die die Mengen in neue Tupel zerlegt und das andere Element im Tupel wiederholt, dh
{{{{}, "a"}}, {{{1}, "a"}}, {{{2}, "a"}}, {{{3}, "a"}}, {{{1},
"a"}, {{2}, "a"}}, {{{1}, "a"}, {{3}, "a"}}}
?
Antworten
6 kglr Sep 07 2020 at 20:00
lst = {{{}, "a"}, {{1}, "a"}, {{2}, "a"}, {{3}, "a"}, {{1, 2}, "a"},
{{1, 3}, "a"}, {{2, 3}, "a"}, {{1, 2, 3}, "a"}}
Thread[{List /@ # /. {} -> {{}}, #2}] & @@@ lst // Column
Alternative,
Tuples[{List /@ # /. {} -> {{}}, {#2}}] & @@@ lst
gleiches Ergebnis
5 C.E. Sep 07 2020 at 19:57
Ich glaube, das ist was du willst:
expr /. {
idxs_ : {__Integer},
el_
} :> ({{#}, el} & /@ idxs)
Wo exprist dein Ausdruck?