2013-11-22 111 views
-4

我需要遍历结果产生DICS的这种结构清单列表:迭代和创建类型的字典

items = [{'clients': [ 
     {'value': i[4], 'first_name': i[1], 'last_name': i[3]}, 
     {'value': i[4], 'first_name': i[1], 'last_name': i[3]} 
     ] 
}] 

for i in results: 
     items = ? 

编辑

[0] => tuple(5) 
     [0] => int(396043) 
     [1] => str(45) "First name" 
     [2] => int(532) 
     [3] => str(45) "Second name" 
     [4] => float(1.0) 
[1] => tuple(5) 
     [0] => int(374286) 
     [1] => str(24) "First name" 
     [2] => int(537) 
     [3] => str(24) "Second name" 
     [4] => float(1.0) 

我如何能做到这一点?

+2

结果是什么? – tMJ

+0

@tMJ是一个tupple – user2983258

+2

@ user2983258:*什么*确切的元组?您需要编辑您的问题并添加更多详细信息。这里没有足够的继续。 –

回答

0

您可以使用列表解析生成results根据每个元组的字典:

items = [{ 
    'clients': [{'value': i[4], 'first_name': i[1], 'last_name': i[3]} for i in results] 
}] 

你也可以使用元组分配的循环,产生更有意义的名称

items = [{ 
    'clients': [{'value': value, 'first_name': first, 'last_name': last} 
       for _, first, _, last, value in results] 
}] 

你也可以在显式循环中做到这一点,但列表理解会更快。显式循环版本:

clients = [] 
items = [{'clients': clients}] 
for _, first, _, last, value in results: 
    clients.append({'value': value, 'first_name': first, 'last_name': last}) 

这里_是,我们忽略了一个循环变量使用约定的名称。它只是表示我们不会再使用_,但需要一个分配目标。

+0

你的答案是完美的,所以至少这个问题是或多或少清楚。男人,有时我无法理解。这个问题很难得到-4?耶稣基督.. – user2983258

+0

@ user2983258:目前还不清楚你试图产生的预期产出的部分。我不得不猜测它是'items [0] ['clients']'中的字典列表。对于我们所知的一切,例如,可能需要生成'items'列表。 –

+0

@ user2983258:换句话说,我很幸运,我猜对了。 tMJ删除了他的答案,但它回答了你的问题的不同解释。我想他觉得我的猜测更准确,但他的解释确实如此有效。 –