我有一个列表,我想把这个列表转换成 map
mylist = ["a",1,"b",2,"c",3]
mylist 等同于
mylist = [Key,Value,Key,Value,Key,Value]
所以输入:
mylist = ["a",1,"b",2,"c",3]
输出:
mymap = {"a":1,"b":2,"c":3}
P.S: 我已经写了下面的函数做同样的工作,但我想使用 python 的迭代器工具:
def fun():
mylist = ["a",1,"b",2,"c",3]
mymap={}
count = 0
for value in mylist:
if not count%2:
mymap[value] = mylist[count+1]
count = count+1
return mymap
请您参考如下方法:
使用 iter 和字典理解:
>>> mylist = ["a",1,"b",2,"c",3]
>>> it = iter(mylist)
>>> {k: next(it) for k in it}
{'a': 1, 'c': 3, 'b': 2}
使用zip 和iter:
>>> dict(zip(*[iter(mylist)]*2)) #use `itertools.izip` if the list is huge.
{'a': 1, 'c': 3, 'b': 2}
