Décomposer l'ensemble en éléments?
Sep 07 2020
Étant donné une liste de tuples où un élément est un ensemble:
{{{}, "a"}, {{1}, "a"}, {{2}, "a"}, {{3}, "a"}, {{1, 2},
"a"}, {{1, 3}, "a"}, {{2, 3}, "a"}, {{1, 2, 3}, "a"}}
Quelle est la fonction qui décompose les ensembles en nouveaux tuples, en répétant l'autre élément dans le tuple, ie
{{{{}, "a"}}, {{{1}, "a"}}, {{{2}, "a"}}, {{{3}, "a"}}, {{{1},
"a"}, {{2}, "a"}}, {{{1}, "a"}, {{3}, "a"}}}
?
Réponses
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
Alternativement,
Tuples[{List /@ # /. {} -> {{}}, {#2}}] & @@@ lst
même résultat
5 C.E. Sep 07 2020 at 19:57
Je crois que c'est ce que vous voulez:
expr /. {
idxs_ : {__Integer},
el_
} :> ({{#}, el} & /@ idxs)
où exprest votre expression.