Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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 从2个列表中创建字典_Python_List_Dictionary - Fatal编程技术网

Python 从2个列表中创建字典

Python 从2个列表中创建字典,python,list,dictionary,Python,List,Dictionary,可能重复: 试图用2个列表制作字典,一个是键,一个是值,但我遇到了一个问题。这就是我到目前为止所做的: d={} for num in range(10): for nbr in range(len(key)): d[num]=key[nbr] 假设我的键是一个从1到9的列表,值列表是[2,4,0,9,6,6,8,6,4,5]我如何分配它,使它像{0:2,1:4,等等。}应该像这样 dict(zip(a,b)) 救命啊 >>> k = range(

可能重复:

试图用2个列表制作字典,一个是键,一个是值,但我遇到了一个问题。这就是我到目前为止所做的:

d={}
for num in range(10):
    for nbr in range(len(key)):
        d[num]=key[nbr]

假设我的键是一个从1到9的列表,值列表是
[2,4,0,9,6,6,8,6,4,5]
我如何分配它,使它像
{0:2,1:4,等等。}
应该像这样

dict(zip(a,b))
救命啊

>>> k = range(1,10)   # or some list or iterable of sorts
>>> v = [2,4,0,9,6,6,8,6,4,5]
>>> d = dict(zip(k,v))
>>> d
{1: 2, 2: 4, 3: 0, 4: 9, 5: 6, 6: 6, 7: 8, 8: 6, 9: 4}
>>>
有关更多详细信息,请参见Python文档中的

注意,关于range()和“键”列表。
问题是“键是从1到9的列表”(即9个不同的键),但值列表显示10个不同的值。这提供了讨论两个“细节”的机会:

  • 上面代码段中的range()函数将生成1到9的范围,这是因为如果提供了起始值(此处为1),则始终包含该范围,而从不包含结束值(此处为10)
  • zip()函数在包含最短iterable的最后一项的迭代后停止(在本例中,省略列表的最后一个值“5”)

如果要专门映射索引,请使用
enumerate
内置函数而不是zip/range

dict(enumerate([2,4,0,9,6,6,8,6,4,5]))

很难理解为什么您需要创建一个使用范围作为键的dict,除非您将其传递给无法使用列表的对象。如果“我的键是一个从1到9的列表”包含在内,但您的值列表有十个条目,那么正如上海人所说的,您在苏州河上游的一个竹蒸笼中,用一根断了的筷子作为桨。
mydict = dict(zip(range(10), [2,4,0,9,6,6,8,6,4,5]))
dict(enumerate([2,4,0,9,6,6,8,6,4,5]))