how to convert two lists into a dictionary (one list is the keys and the other is the values)?
本问题已经有最佳答案,请猛点这里访问。
这是Python中idle2中的代码,还有错误。
我需要以有序的方式将每个"数据"元素作为键和值"otro"。"data"和"otro"是38个字符串的列表,而"dik"是一本字典。
1 2 3 4 5 6 7 8 | >>> for i in range(len(otro)+1): dik[dato[i]] = otro[i] Traceback (most recent call last): File"<pyshell#206>", line 2, in <module> dik[dato[i]] = otro[i] IndexError: list index out of range >>> |
这个问题是范围(0,38)输出->(0,1,2,3…37)一切都很混乱
我想是这样的:
1 | dik = dict(zip(dato,otro)) |
有点干净…
如果
1 | dik.update(zip(dato,otro)) |
如果你不了解
1 2 3 | a = [ 1 , 2 , 3 , 4 ] b = ['a','b','c','d'] zip(a,b) #=> [(1,'a'),(2,'b'),(3,'c'),(4,'d')] #(This is actually a zip-object on python 3.x) |
例如,
这恰好是
错误来源于:
迭代某些内容的"pythonic"方法是不使用列表中的
1 2 3 4 5 6 7 8 9 | In [1]: my_list = ['one', 'two', 'three'] In [2]: for index, item in enumerate(my_list): ...: print index, item ...: ...: 0 one 1 two 2 three |
将此应用于您的案例,然后您可以说:
1 2 | >>> for index, item in enumerate(otro): ... dik[dato[index]] = item |
然而,与pythonicity主题保持一致,@mgilson的