公告:1)网站程序升级:Q2A升级到1.8.6,Wordpress升级到5.7.2
2)修复了头像加载慢与提交问题反应慢等问题
2021-06-16

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+2 投票
3.3k 浏览
举一个例子,我想有下面的效果
a  = {x1, x2, x3};
b = {x4, x5, x6};
c = {};
For[i = 1, i <= Length[a], i++,
 c = AppendTo[c, {a[[i]], b[[i]]}];
 ]

于是得到 c 为 {{x1, x4}, {x2, x5}, {x3, x6}}

我想问一下有什么别的方法可以得到这样的结果吗

 

分类:列表操作 | 用户: WMN7 (606 分)
Transpose[{a,b}]
永的答应该是最简单的,直接作为回答就行了。
不好意思贴 :)(凑八字专用)
对对,你说的方法很好
Transpose比下边那一串一种比一种慢的方法不知道到高到哪里去~

1个回答

+4 投票
 
已采纳

嗯?又到丧病的时间了?

Thread@{a, b}

a~Riffle~b~Partition~2

Outer[List, a, b] // Diagonal

Inner[List, a, b, List]

List @@@ (a b)

Flatten[{a, b}, {{2}, {1}}]

i = 1; {#, b[[i++]]} & /@ a

{a, b}\[ConjugateTranspose] /. _[a_] :> a

Function[{a, b}, {a, b}, Listable][a, b]

 

用户: xzczd (2.1k 分)
修改于 用户:xzczd
哈哈,厉害,Flatten可简写成Flatten[{a, b}, {2}],我也只好再添两例了

一:Activate[Thread[Inactive[Append][List /@ a, b]]]
二:Join[List /@ a, List /@ b, 2]
另外,这个居然有报错信息,感觉不应该啊:

a.b/.Except[_?(Context[#]==$Context&),_Symbol]->List
应该是计算次序的问题,Except的两个模式是从左检测到右的,证据:x /. Except[_ /; Print@1, _ /; Print@2] :> y 不过经你这么一说倒是使我发现了自带帮助文档的一个错误:tutorial/PuttingConstraintsOnPatterns最后一句,说反了……另,同一思想的把顺序顺过来的玩法:a.b /. _Symbol?(Context[#] == "System`" &) -> List
没有点赞按扭,要不然想点两下 :),另外,麻烦你把所有办法都收集一下吧,方便看贴
好像现在这样也还不至于不方便看所以算了吧。(其实主要是懒……)
...