2017-02-24 37 views
0

比較不同的密鑰值,我的字典兩個列表如下,我想基於以下條件在字典的名單蟒蛇

打印URL如果在列表2 = name.value字典remote.value列表1中的字典 列表1中的字典myurl = fetch.value +列表2中的字典的名稱值。

有沒有人曾經這樣做過。有了這個,我會得到giturl和克隆回購在修訂列表2%字典

詞典列表 - 1名

[ 
{'fetch': 'https://github.com/cbase/', 'name': 'cbase'}, 
{'fetch': 'https://github.com/cbasela/', 'name': 'cbaselabs'} 
] 

列表中,如果詞典 - 2

[ 
{'remote': 'cbase', 'name': 'cbgt', 'revision': '06193c'}, 
{'remote': 'cbase', 'name': 'cbauth', 'revision': '1323b9'}, 
{'remote': 'cbasela', 'name': 'pink', 'revision': 'cfb33e'} 
] 
+0

您將不得不循環兩個列表並檢查條件。使用列表理解它。 –

+0

用於REMOTE elem1: 用於PROJ elem2時: 如果(elem1 [ '名稱'] == elem2時[ '遠程']): 如果elem2時[ '修改']: repoList.append(elem1 [ '取' ] + elem2 ['name'] + elem2 ['revision']) else: repoList.append(elem1 ['fetch'] + elem2 ['name']) – udyshnkr

回答

0

嘗試使用list comprehension

[el1['fetch'] + el2['name'] for el1 in list1 for el2 in list2 if el1['name'] == el2['remote']] 

網址的輸出列表:

['https://github.com/cbase/cbgt', 'https://github.com/cbase/cbauth'] 
+0

如果我需要打印url和revision,越來越關鍵錯誤 – udyshnkr

+0

爲elem1在REMOTE: 爲elem2時在PROJ: 如果(elem1 [ '名稱'] == elem2時[ '遠程']): 如果elem2時[ '修改']: repoList.append(elem1 [ 'fetch'] + elem2 ['name'] + elem2 ['revision']) else: repoList.app結束(elem1 ['fetch'] + elem2 ['name']) – udyshnkr