python中元组的键值对

时间:2012-11-22 09:12:20

标签: python django web.py

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

我们说我有:

tuple = ('name1','value1','name2','value2','name3','value3')

我想将它放入字典中:

dictionary = { name1 : value1, name2 : value2, name3 : value3 )

4 个答案:

答案 0 :(得分:13)

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

it = iter(tuple_)
dictionary = dict(zip(it, it))

zip(it, it)成语从其他平面迭代中生成项对,提供可以传递给dict构造函数的一对对。可以通过itertools文档中的grouper recipe获得对此的概括。

如果输入足够大,请将zip替换为itertools.izip以避免分配临时列表。与基于映射t[i][i + 1]的表达式不同,上述内容将适用于任何可迭代的,而不仅仅是序列。

答案 1 :(得分:3)

dictionary = {tuple[i]: tuple[i + 1] for i in range(0, len(tuple), 2)}

另一种简单的方法:

dictionary = dict(zip(tuple[::2],tuple[1::2]))

答案 2 :(得分:2)

只做一个简单的循环。

my_dic = {}
tuple = ('name1','value1','name2','value2','name3','value3')
if len(tuple) % 2 == 1:
    my_dic[tuple[-1]] = None
for i in range(0, len(tuple) - 1, 2):
    my_dic[tuple[i]] = tuple[i + 1]
print my_dic

答案 3 :(得分:2)

tuple = ('name1','value1','name2','value2','name3','value3')
d = {}
for i in range(0, len(tuple), 2):
    d[tuple[i]] = tuple[i+1]
print d