我想合并两个列表。如果我有以下两个列表:{a,b,c,d}
和{1,2,3,4}
我需要做什么以便我获得{{a,1}, {b,2}, {c,3}, {d,4}}
?对列表按顺序创建元组
26
A
回答
33
这里有一种方法:
Transpose[{{a, b, c, d}, {1, 2, 3, 4}}]
10
一个可能的解决方案是
MapThread[List,{{a,b,c,d},{1,2,3,4}}]
2
如果你有一个矩阵的列列表:
l = Table[Subscript[g, Sequence[j, i]], {i, 5}, {j, 5}]
移调会给你行:
[email protected] // MatrixForm
15
一个深奥的方法是Flatten
,它(来自Flatten的帮助部分)也允许转置一个'衣衫褴褛'的数组。
Flatten[ {{a, b, c, d}, {1, 2, 3, 4, 5}}, {{2}, {1}}]
缺货[6] = {{A,1},{B,2},{C,3},{d,4},{5}}
1
listA={a,b,c,d};
listB=[1,2,3,4};
[email protected]{# & @@@ listA, # & @@@ listB}
0
这是一个很好的问题。我被卡住了,认为有一种默认的方式可以用Table来做到这一点,但并非如此。下面的答案相当直观,可以很容易地推广到其他类似的情况。
l1 = {a,b,c,d};
l2 = {1,2,3,4};
pairs = Table[{l1[[i]], l2[[i]]}, {i, 1, Length[l1]}]
MapThread也做这种事情。这不像Howard的MapThread解决方案那么优雅,但在某种意义上也更具可读性。看看MapThread文档。该函数被定义的内联(纯函数):
pairs = MapThread[{#1, #2} &, {l1, l2}]
1
如果A,B,C,D本身也列表中,使用下列:
MapThread[Flatten[{#1[[All]],#2}]&,{l1,l2}]//TableForm
相关问题
- 1. 按创建顺序对散列表排序
- 2. xquery组名按字母顺序创建联系人列表
- 3. 按相反顺序创建数组
- 4. 按递增顺序对元素排序两个列表
- 5. 按顺序组合使用正则表达式创建的三个列表 - Python
- 6. 元组随机切换顺序列表
- 7. 按顺序连接列表中的元素对
- 8. 创建表后创建表的列顺序
- 9. SQL组按顺序按降序对datetime列
- 10. 创建顺序类对象
- 11. 按另一个列表的顺序对一个列表排序
- 12. 基于按时间顺序排列的对象创建值序列
- 13. 按C++语言按字母顺序排列对象列表
- 14. 如何对列表/元组进行排序(列表/元组)?
- 15. 基于元组列表对元组列表进行排序 - Python
- 16. 如何创建按第二个元素排序并分组的对列表的列表?
- 17. 如何将具有相似元素的元组序列按顺序排列?
- 18. 排序元组的元组按字母顺序
- 19. Java - 按字母顺序和数字顺序排列数组列表
- 20. MySQL:按外观顺序创建一个序列
- 21. 递归创建列表元组
- 22. 从csv文件创建元组列表
- 23. 创建从字典元组从列表
- 24. 按顺序排列列表中的元素
- 25. Rails:按特定顺序创建属性
- 26. 按执行顺序创建pthread
- 27. 如何用字母创建按字母顺序排列的列表?
- 28. 发挥创建与字段的表按字母顺序排序
- 29. C#列表顺序由排按升序
- 30. 按字母顺序排序列表
如果一个人要做些什么对于创建的对,这个('MapThread')通常比'Transpose'后面的'Apply'更有效率。 – 2011-03-21 14:42:34