我想合併兩個列表。如果我有以下兩個列表:{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. 按連續順序對元組列表進行排序
- 3. 按創建順序對散列表排序
- 4. 按字母順序排序元組列表的列表
- 5. xquery組名按字母順序創建聯繫人列表
- 6. 按相反順序創建數組
- 7. 按字母順序排列元組
- 8. 按組創建列表和創建JSON
- 9. 按遞增順序對元素排序兩個列表
- 10. 如何保存按照創建順序排序的列表
- 11. 按順序組合使用正則表達式創建的三個列表 - Python
- 12. Python:按字母順序對列表進行排序/分組
- 13. 元組隨機切換順序列表
- 14. 按順序排列並按組排序
- 15. 列索引順序SQLite的創建表
- 16. 按順序連接列表中的元素對
- 17. 如何按特定順序對齊列表元素
- 18. 創建表後創建表的列順序
- 19. 創建順序類對象
- 20. SQL組按順序按降序對datetime列
- 21. 按另一個列表的順序對一個列表排序
- 22. 基於按時間順序排列的對象創建值序列
- 23. 按字母順序排列的鏈表不按順序排列
- 24. 排序元組在按字母順序排列的列表中,它的值 - Python
- 25. CoreData按創建順序排序
- 26. 按照字典順序以升序排列創建一個字符串列表
- 27. 順序列表的元素
- 28. 按C++語言按字母順序排列對象列表
- 29. 按隨機順序按組順序
- 30. 基於元組列表對元組列表進行排序 - Python
如果一個人要做些什麼對於創建的對,這個('MapThread')通常比'Transpose'後面的'Apply'更有效率。 – 2011-03-21 14:42:34