Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中,按类别或类型将列表项分开_Ruby_Arrays_List_Split - Fatal编程技术网

在ruby中,按类别或类型将列表项分开

在ruby中,按类别或类型将列表项分开,ruby,arrays,list,split,Ruby,Arrays,List,Split,我有两份清单: a = [1,2,3] b = ["a","b","c"] 我的清单是: l = [a,b].flatten 所以l=[1,2,3,“a”,“b”,“c”] 我正在寻找一种按列表中项目类型拆分列表的优雅方法,以便将a和b恢复原状 我可以使用列表中的每一项进行测试,但这在运行时和代码方面似乎都不太有效。您可以使用,然后从生成的哈希中提取数组: >> by_class = l.group_by(&:class) => {Integer=>[1,

我有两份清单:

a = [1,2,3]
b = ["a","b","c"]
我的清单是:

l = [a,b].flatten 
所以
l=[1,2,3,“a”,“b”,“c”]

我正在寻找一种按列表中项目类型拆分列表的优雅方法,以便将
a
b
恢复原状

我可以使用列表中的每一项进行测试,但这在运行时和代码方面似乎都不太有效。

您可以使用,然后从生成的哈希中提取数组:

>> by_class = l.group_by(&:class)
=> {Integer=>[1, 2, 3], String=>["a", "b", "c"]}
>> a = by_class[Fixnum]
=> [1, 2, 3]
>> b = by_class[String]
=> ["a", "b", "c"]
如果您知道您只有Fixnums和string,那么您可以使用:

您可以使用,然后将数组从结果哈希中拉出:

>> by_class = l.group_by(&:class)
=> {Integer=>[1, 2, 3], String=>["a", "b", "c"]}
>> a = by_class[Fixnum]
=> [1, 2, 3]
>> b = by_class[String]
=> ["a", "b", "c"]
如果您知道您只有Fixnums和string,那么您可以使用: