2014-03-28 88 views
-3

我有以下列出了從列表拉一個字段:基於第二列表

list1 = [["value1":"name1", "value2":"check1"], ["value1":"name2", "value2":" check2"], 
["value1":"name3", "value2":" check3"]] 
list2 = ['name1', 'name2'] 

我想拉的所有"value2"的列表name1name2。 爲:

[check1, check2] 
+0

我不知道關於Groovy,但在任何語言中的'用'if'聲明for'循環會工作。你嘗試過嗎? – Andrey

+0

由於我有大量的記錄(數十萬),我試圖找到一些不會影響性能的東西。感謝您的回覆 – user3433227

回答

2

這應做到:

def list3 = list1.findAll { it.value1 in list2 }.value2 
0
def list1 = [["value1":"name1", "value2":"check1"], ["value1":"name2", "value2":" check2"], 

["value1":"name3", "value2":" check3"]] 

def list2 =list1.collect{it."value2"} 
+0

嗨,我想拉只在第二個列表中的值,而不是整個值列表 – user3433227

相關問題