" = @ @ @ @ @ ="} 我想在控制台的一行中打印出一些散列-6ren">
gpt4 book ai didi

arrays - 在 Ruby 中一行打印数组元素

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:28 25 4
gpt4 key购买 nike

我有以下 Ruby 哈希:

hash = {
0 => "
===
@@@
@ @
@ @
@ @
@@@
===",
1 => "
=
@
@
@
@
@
="}

我想在控制台的一行中打印出一些散列值。为此,我创建了一个数组,其中包含我想要打印的元素:

test = [hash[0], hash[1]]

test1 = [hash[0], hash[0]]

如果我想将 test1 打印到控制台,结果应该如下所示:

======
@@@@@@
@ @@ @
@ @@ @
@ @@ @
@@@@@@
======

如果我想将 `test2 打印到控制台,结果应该是:

====
@@@@
@ @@
@ @@
@ @@
@@@@
====

但是,当我使用putsprint 时,结果总是一个接一个地打印,而不是在同一行。

最佳答案

a1, a2 = hash.values.map { |s| s[1..-1].split("\n") }
#=> [["===", "@@@", "@ @", "@ @", "@ @", "@@@", "==="],
# ["=", "@", "@", "@", "@", "@", "="]]

puts a1.zip(a1).map(&:join)
======
@@@@@@
@ @@ @
@ @@ @
@ @@ @
@@@@@@
======

puts a1.zip(a2).map(&:join)
====
@@@@
@ @@
@ @@
@ @@
@@@@
====

注意:

a1.zip(a1)
#=> [["===", "==="], ["@@@", "@@@"], ["@ @", "@ @"], ["@ @", "@ @"],
# ["@ @", "@ @"], ["@@@", "@@@"], ["===", "==="]]

a1.zip(a2)
#=> [["===", "="], ["@@@", "@"], ["@ @", "@"], ["@ @", "@"],
# ["@ @", "@"], ["@@@", "@"], ["===", "="]]

s[1..-1],它删除了 hash[0]hash[1] 的第一个字符,是需要,因为该字符是换行符 ("\n")。如果 0 => "=== 这两行被写成 0 =>"=== (类似于 hash[ 1]), 我本可以写成 s.split("\n")

关于arrays - 在 Ruby 中一行打印数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57280164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com