Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将简单列表转换为字典(python中)_Python - Fatal编程技术网

将简单列表转换为字典(python中)

将简单列表转换为字典(python中),python,Python,我正在学习python。我有一个简单条目的列表,我想在字典中转换它,其中列表的第一个元素是第二个元素的键,第三个是第四个元素的键,依此类推。我怎么做 list = ['first_key', 'first_value', 'second_key', 'second_value'] 提前谢谢 最简洁的方法是 some_list = ['first_key', 'first_value', 'second_key', 'second_value'] d = dict(zip(*[iter(some

我正在学习python。我有一个简单条目的列表,我想在字典中转换它,其中列表的第一个元素是第二个元素的键,第三个是第四个元素的键,依此类推。我怎么做

list = ['first_key', 'first_value', 'second_key', 'second_value']

提前谢谢

最简洁的方法是

some_list = ['first_key', 'first_value', 'second_key', 'second_value']
d = dict(zip(*[iter(some_list)] * 2))
请不要将“list”用作变量名,因为它会阻止您访问list()函数

如果涉及的数据较多,我们可以使用迭代器函数更有效地完成:

from itertools import izip, islice
myList = ['first_key', 'first_value', 'second_key', 'second_value']
myDict = dict(izip(islice(myList,0,None,2), islice(myList,1,None,2)))

如果列表很大,您最终会通过构建切片或急切拉链来浪费内存。更惰性地转换列表的一种方法是(ab)使用列表迭代器和
izip

from itertools import izip

lst = ['first_key', 'first_value', 'second_key', 'second_value']
i = iter(lst)
d = dict(izip(i,i))
吻的方式:

使用异常和迭代器

    myDict = {}

    it = iter(list) 

    for x in list:
        try:
            myDict[it.next()] = it.next()
        except:
            pass



    myDict

请不要列出任何清单(或
str
dict
)。它将覆盖具有相同名称的内置项。
    myDict = {}

    it = iter(list) 

    for x in list:
        try:
            myDict[it.next()] = it.next()
        except:
            pass



    myDict