arrays - 串叉积

标签 arrays ruby string

使用:

digits   = '123456789'
cols     = 'ABCDEFGHI'

我想要输出:

[“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)

有没有更好的方法来实现这个方法?在 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"]

关于arrays - 串叉积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37334883/

相关文章:

c - c中范围-5到5的数组的算术平均值

c - 按升序排列 3 个数字 - 功能未按预期工作

ruby - 这是在 Ruby 中取消转义 unicode 转义序列的最佳方式吗?

java - StringBuffer 和 String 的用法?

java - 使用索引点在多个点拆分数组

ruby-on-rails - 使用动态模型名称创建记录

arrays - 在没有内置 ruby​​ 函数的情况下合并两个排序数组

在C中为字符串剪切字符

java - 文本文件解析上的数组 IndexOutOfBoundsException

php从stdClass对象获取数组值