¿Descomponer el conjunto en elementos?
Sep 07 2020
Dada una lista de tuplas donde un elemento es un conjunto:
{{{}, "a"}, {{1}, "a"}, {{2}, "a"}, {{3}, "a"}, {{1, 2},
"a"}, {{1, 3}, "a"}, {{2, 3}, "a"}, {{1, 2, 3}, "a"}}
Cuál es la función que descompone los conjuntos en nuevas tuplas, repitiendo el otro elemento en la tupla, es decir
{{{{}, "a"}}, {{{1}, "a"}}, {{{2}, "a"}}, {{{3}, "a"}}, {{{1},
"a"}, {{2}, "a"}}, {{{1}, "a"}, {{3}, "a"}}}
?
Respuestas
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
Alternativamente,
Tuples[{List /@ # /. {} -> {{}}, {#2}}] & @@@ lst
mismo resultado
5 C.E. Sep 07 2020 at 19:57
Creo que esto es lo que quieres:
expr /. {
idxs_ : {__Integer},
el_
} :> ({{#}, el} & /@ idxs)
donde expresta tu expresion