list - 将表中的新列组合到另一个表的函数
问题描述
我需要一些关于两个表问题的帮助:如何实现 2 个表的简单水平联合?像这样:
table2table :: Table -> Table -> Table
table1 = [["Zoe", "2", "1"],
["Mark", "2", "5"]]
table2 = [["Zbir", "4", "7"],
["Nels", "1", "3"]]
table2table = [["Zoe", "2", "1"], ["Zbir", "4", "7"],
["Mark", "2", "5"], ["Nels", "1", "3"]]
解决方案
对于执行这种组合的一般方法,您可以使用concat . transpose
:
> concat . transpose $ [table1, table2]
[["Zoe","2","1"],["Zbir","4","7"],["Mark","2","5"],["Nels","1","3"]]
如果您需要,它适用于两个以上的列表:
> concat . transpose $ [table1, table2, table1]
[["Zoe","2","1"],["Zbir","4","7"],["Zoe","2","1"],
["Mark","2","5"],["Nels","1","3"],["Mark","2","5"]] -- manually formatted
transpose
“按列”对它们进行分组,concat
将列表展平。
混合列表的另一种方法是按以下diagonal
方式进行:
> diagonal [table1, table2]
[["Zoe","2","1"],["Zbir","4","7"],["Mark","2","5"],["Nels","1","3"]]
对于两个列表,结果与 相同concat . transpose
,但对于更多列表,它们是不同的。
> diagonal [table1, table2, table1]
[["Zoe","2","1"],["Zbir","4","7"],["Mark","2","5"],
["Zoe","2","1"],["Nels","1","3"],["Mark","2","5"]]
推荐阅读
- java - docker容器中的Java服务未连接到主机mysql
- docker - Docker 容器未连接到服务器上的另一个 Docker 容器
- r - 停止执行但不将输出生成为 R 中的“错误”
- python - 在 JupyterHub 中与 Bokeh 服务器交互
- reactjs - 使用 redux thunk 从 Axios 获取响应数据
- c++ - BOOST_CLASS_EXPORT 语法错误
- python - 在 Python 环境中自动运行代码生成工具(例如 thrift)的最佳实践
- asp.net-core - 将视频流重定向到视频播放器(如 HTML5 视频播放器)的最佳方法
- redirect - 将我的博客设为主页?重定向?
- javascript - 在节点 js 中对 json 文件使用 GET 时遇到问题