Wolfram mathematica Mathematica:通过重复展平嵌套列表

Wolfram mathematica Mathematica:通过重复展平嵌套列表,wolfram-mathematica,Wolfram Mathematica,我有以下清单: lis={{1, {2}}, {3, {4, 5, 6}}, {7, {8, 9}}, {10, {11}}}; 我想得到这个: lis2={{1, 2}, {3, 4}, {3, 5}, {3, 6}, {7, 8}, {7, 9}, {10, 11}}; 我可以使用嵌套表并计算第二个嵌套列表的长度来实现这一点: Flatten[Table[Table[{lis[[kk, 1]], lis[[kk, 2, ii]]}, {ii, 1, Length[lis[[kk, 2]]

我有以下清单:

lis={{1, {2}}, {3, {4, 5, 6}}, {7, {8, 9}}, {10, {11}}};
我想得到这个:

lis2={{1, 2}, {3, 4}, {3, 5}, {3, 6}, {7, 8}, {7, 9}, {10, 11}};
我可以使用嵌套表并计算第二个嵌套列表的长度来实现这一点:

Flatten[Table[Table[{lis[[kk, 1]], lis[[kk, 2, ii]]}, {ii, 1, Length[lis[[kk, 2]]]}], {kk, 1, Length[lis]}], 1]
这是可行的,但有没有更直接的方法?也许是映射/线程/应用的组合?

一种方式:

ArrayFlatten[Distribute[#, List] & /@ lis, 1]
=>{1,2},{3,4},{3,5},{3,6},{7,8},{7,9},{10,11}

编辑

编辑2

或者,稍微简单一点,正如在评论中指出的:

Flatten[Thread /@ lis, 1]

您知道Mathematica的StackExchange网站(Mathematica.StackExchange.com)吗?那可能是问这个问题的好地方。大多数Mathematica专家都搬到了那里,很少去这个地方。我自己会选择普通的老
Flatten
,但是+1——这就是方法。
Flatten[Thread /@ lis, 1]