对列表按顺序创建元组

Mar*_*ijn 29 wolfram-mathematica tuples list

我想结合两个列表.如果我有以下两个列表:{a,b,c,d}{1,2,3,4}什么我需要做的,使我得到{{a,1}, {b,2}, {c,3}, {d,4}}

Leo*_*rin 36

这是一种方式:

Transpose[{{a, b, c, d}, {1, 2, 3, 4}}]
Run Code Online (Sandbox Code Playgroud)


tom*_*omd 17

一个深奥的方法是Flatten(从Flatten的帮助部分)也允许Transatt一个'参差不齐'的数组.

Flatten[ {{a, b, c, d}, {1, 2, 3, 4, 5}}, {{2}, {1}}]
Run Code Online (Sandbox Code Playgroud)

Out [6] = {{a,1},{b,2},{c,3},{d,4},{5}}

  • `Thread [List [{a,b,c,d},{1,2,3,4}]]`没有被提及 (3认同)

How*_*ard 11

一种可能的解决方案是

MapThread[List,{{a,b,c,d},{1,2,3,4}}]
Run Code Online (Sandbox Code Playgroud)

  • 如果要对创建的对执行某些操作,那么(`MapThread`)通常比`Transpose`之后的`Apply`更有效. (2认同)