【发布时间】:2019-04-16 13:48:47
【问题描述】:
我希望将 2D 列表转换为格式化字符串。
table :: [[Int]] -> String
Input: [[11,2,30],[4,555,9]]
Output: " 11 2 30 \n 4 555 6 \n"
11 2 30
4 555 9
基本上需要能够以网格形状打印并保持格式以考虑最大值。
我知道对于简单的列表,我可以根据 ghci 映射显示 [1,2,3,4] -> ["1","2","3","4"]。不过,这似乎将其保留为列表?
不确定如何遍历 2D 并继续连接为字符串并根据需要添加 \n。
【问题讨论】:
-
您好 Eli,如果您能向我们展示一个您迄今为止尝试过的示例,以及当前输出与预期输出的对比(或您可能出现的任何错误),将会更有帮助遇到)。
-
words和lines可能对您的尝试很有帮助。关于排列列,您可以尝试在字符串中使用maximum或length,并在replicate前面加上' '字符以使宽度相等。 -
您知道您将使用什么算法并且在实施时遇到了困难,或者您甚至无法从算法上弄清楚该做什么?如果您正在寻找预先打包的漂亮打印解决方案建议,那么这显然是题外话,但 reddit 上的人可能会很有帮助。
-
@ThomasM.DuBuisson 我很难弄清楚该做什么。到目前为止,我已经设法通过 2D 列表并将它们所有内部整数元素转换为字符串,但我想要的是抓住元素并将它们形成一个字符串。
-
把它们变成 a 字符串很容易。您可以
concat整个字符串列表。但是,您想用空格填充每个值以使每列具有匹配的长度。你能通过算法来实现这一点吗?