将简单列表转换为字典(python中)
我正在学习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
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