python中元组的键值对

Uui*_*uid 2 python django web.py

如何动态地将元组转换为键值对?

比方说我有:

tuple = ('name1','value1','name2','value2','name3','value3')
Run Code Online (Sandbox Code Playgroud)

我想把它放入字典:

dictionary = { name1 : value1, name2 : value2, name3 : value3 )
Run Code Online (Sandbox Code Playgroud)

use*_*342 13

将元组转换为键值对,让dict构造函数构建一个字典:

it = iter(tuple_)
dictionary = dict(zip(it, it))
Run Code Online (Sandbox Code Playgroud)

这个zip(it, it)习语从一个平坦的迭代中产生了一对项,提供了一系列可以传递给dict构造函数的对.对此的推广可以作为itertools文档中的分组器配方.

如果输入足够大,则更换zipitertools.izip避免分配的临时列表.与基于映射表达式t[i][i + 1],上述将工作在任何可迭代,不仅对序列.

  • @JoelCornett`zip`并不关心,它只是从左到右消耗迭代.(从左到右的消费实际上是[在文档中保证](http://docs.python.org/2/library/functions.html#zip),正是为了使这个成语起作用.) (2认同)