我有一个元组列表的字典:
adict = {'alpha': [('0', 'beta'), ('1', 'beta')],
'beta': [('0', 'alpha'), ('1', 'alpha')]}和一个值列表:
alist = ['alpha', '0', '1', '0']
blist = ['beta', '0', '1', '0', 'x']我希望能够使用第一个索引作为关键字来搜索字典,然后使用列表中的数字搜索元组,并将匹配的元组(带有元组的第一个元素)附加到最终的列表中。我不知道我是不是说得够清楚了,但最后我想要的是
final_list = [ ['alpha', ('0', 'beta'), ('1', 'beta'), ('0', 'beta')],
['beta', ('0', 'alpha'), ('1', 'alpha'), ('0', 'alpha'), ('x': None)] ] 这是一种多层次的搜索。我该如何解决这个问题呢?
发布于 2014-01-22 02:50:27
首先创建一个临时字典,其中adict的值是字典本身。然后使用列表理解来获得所需的列表。
>>> temp_adict = {k:dict(v) for k, v in adict.items()}
>>> [ lis[:1] + [(x, temp_adict[lis[0]].get(x)) for x in lis[1:]]
for lis in [alist, blist]]
[['alpha', ('0', 'beta'), ('1', 'beta'), ('0', 'beta')],
['beta', ('0', 'alpha'), ('1', 'alpha'), ('0', 'alpha'), ('x', None)]]https://stackoverflow.com/questions/21266559
复制相似问题