Skip to main content
 首页 » 编程设计

python之要在 python 中映射的列表

2025年05月04日13tintown

我有一个列表,我想把这个列表转换成 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} 

相关:How does zip(*[iter(s)]*n) work in Python