0
list1 = [[1,'Rob','Ben', 'Ni', 'cool'],[2,'Jack','Jo','Raj','Giri'],[...]....]

list2 = [['20 May 2013',20],['25 May 2013',26],[...]....]

将有 100 条这样的记录

我想要结果列表

list1 = [[1, '20 May 2013', 20, 'Rob','Ben','Ni', 'cool'],[2,'25 May 2013', 26, 'Jack','Jo','Raj','Giri']]

有什么建议吗?

4

3 回答 3

3
[list1, list2].transpose()*.flatten()

假设list1list2的基数相同。

UPDATE
问题现在被彻底修改,但您可以通过扩展转置来获得您想要的内容,如下所示:

[list1, list2].transpose()*.flatten()
                           .collect{[it[0], it[-2..-1], it[1..-3]]}*.flatten()
于 2013-10-04T13:41:05.997 回答
0

这个怎么样?

def i = 0
def combined = list1.collect([]) { it + list2[i++] }
于 2013-10-04T13:40:29.213 回答
0

结果行不是两个列表行的串联 - 它采用第二行并将其插入到第一行的索引 1 中,没有最后两个元素。所以

[list1, list2].transpose()*.flatten()

行不通-虽然很酷:-)。然而,

[list1,list2].transpose().collect { def l = it.flatten(); l[0..0] + l[5..6] + l[1..2] }

给出问题中的结果显示。我完全承认站在巨人的背上:-)

于 2013-10-04T22:26:06.583 回答