This question already has answers here:
Iterating over every two elements in a list
                                
                                    (19个回答)
                                
                        
                                2年前关闭。
            
                    
我有一个看起来像这样的列表:

mylist = [1, 'a', 2, 'b', 3, 'c']


并希望以字典结尾:

mydict = {
    'a': 1,
    'b': 2,
    'c': 3,}


目前,我正在这样实现:

mydict = {}
for i, k in enumerate(mylist):
    if i == len(mylist)/2:
        break
    v = 2 * i
    mydict[mylist[v+1]] = mylist[v]


有没有更多的pythonic方法可以实现相同的目的?我查找了itertools参考,但没有发现特别有助于上述操作的任何内容。

注意:我对实现目标感到满意,但对在这种情况下是否有更常用的东西感到好奇。

最佳答案

尝试这个

# keys
k = mylist[1::2]
# values
v = mylist[::2]
# dictionary
mydict = dict(zip(k, v))

关于python - Python-将列表成对转换为字典成对,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52687737/

10-12 22:12