Gio*_*ino 1 ruby arrays string
使用:
digits = '123456789'
cols = 'ABCDEFGHI'
Run Code Online (Sandbox Code Playgroud)
我想要输出:
["1A", "1B", "1C", "1D", "1E", "1F", "1G", "1H", "1I", "2A", "2B",
"2C", "2D", "2E", "2F", "2G", "2H", "2I", "3A", "3B", "3C", "3D",
"3E", "3F", "3G", "3H", "3I", "4A", "4B", "4C", "4D", "4E", "4F",
"4G", "4H", "4I", "5A", "5B", "5C", "5D", "5E", "5F", "5G", "5H",
"5I", "6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I", "7A",
"7B", "7C", "7D", "7E", "7F", "7G", "7H", "7I", "8A", "8B", "8C",
"8D", "8E", "8F", "8G", "8H", "8I", "9A", "9B", "9C", "9D", "9E",
"9F", "9G", "9H", "9I"]
我的代码是:
def cross_prod(str_1 , str_2)
res = []
str_1.each_char do |a|
str_2.each_char do |b|
res << (a + b)
end
end
return res
end
cross_prod(digits, cols)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现此方法?在Python中,它涉及一行代码[a+b for a in A for b in B].
这可行:
digits.chars.product(cols.chars).map(&:join)
#=> ["1A", "1B", "1C", "1D", "1E", "1F", "1G", "1H", "1I",
# "2A", "2B", "2C", "2D", "2E", "2F", "2G", "2H", "2I",
# "3A", "3B", "3C", "3D", "3E", "3F", "3G", "3H", "3I",
# "4A", "4B", "4C", "4D", "4E", "4F", "4G", "4H", "4I",
# "5A", "5B", "5C", "5D", "5E", "5F", "5G", "5H", "5I",
# "6A", "6B", "6C", "6D", "6E", "6F", "6G", "6H", "6I",
# "7A", "7B", "7C", "7D", "7E", "7F", "7G", "7H", "7I",
# "8A", "8B", "8C", "8D", "8E", "8F", "8G", "8H", "8I",
# "9A", "9B", "9C", "9D", "9E", "9F", "9G", "9H", "9I"]
Run Code Online (Sandbox Code Playgroud)