如何将两个列表作为两个元素放入一个列表中?
问题描述:
我想将两个列表放入一个列表中,但不使用append。它会得到两个混合列表。我想把这两个列表作为新列表中的两个元素。新列表只有两个元素---第一个列表和第二个列表。如何将两个列表作为两个元素放入一个列表中?
答
下面是做到这一点的一种方法:
let list2 a b = [ a; b ]
这适用于任意两个值a
,b
,相同类型的。它们可以是列表或其他任何东西:
$ 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
(OP要求提供OCaml解决方案。) – 2017-09-05 07:22:00