如何将两个列表作为两个元素放入一个列表中?

问题描述:

我想将两个列表放入一个列表中,但不使用append。它会得到两个混合列表。我想把这两个列表作为新列表中的两个元素。新列表只有两个元素---第一个列表和第二个列表。如何将两个列表作为两个元素放入一个列表中?

下面是做到这一点的一种方法:

let list2 a b = [ a; b ] 

这适用于任意两个值ab,相同类型的。它们可以是列表或其他任何东西:

$ ocaml 
     OCaml version 4.01.0 

# let list2 a b = [a; b];; 
val list2 : 'a -> 'a -> 'a list = <fun> 
# list2 [1;2] [3;4];; 
- : int list list = [[1; 2]; [3; 4]] 
# list2 "yes" "no";; 
- : string list = ["yes"; "no"] 
# 

(。如果你的两个列表是不一样的类型是不可能把它们放入一个列表OCaml的列表是均匀的 - 所有的元素具有相同的类型)

可以使用功能这样做:

使用的append()直接将不会得到预期的result.See包含多个列表列表中的代码段。 def foo(list1,list2): new_list =[] for i in range(0,len(list1)): new_list.append(list1[i]) for j in range(0,len(list2)): new_list.append(list2[j]) return new_list

+1

(OP要求提供OCaml解决方案。) – 2017-09-05 07:22:00