Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 再次使用键列表从列表创建dict_Python - Fatal编程技术网

Python 再次使用键列表从列表创建dict

Python 再次使用键列表从列表创建dict,python,Python,我有两张单子 listA = (1,2,3,4) listB = (A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D) 我想构建一个字典,重用listA作为listB dict = {1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D} 我不能使用itertools我还必须考虑到我的一些值是空的,所以我尝试像这样构建dict def create_dict

我有两张单子

listA = (1,2,3,4)
listB = (A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D)
我想构建一个字典,重用
listA
作为
listB

dict = {1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D,1:A,2:B,3:C,4:D}
我不能使用
itertools
我还必须考虑到我的一些值是空的,所以我尝试像这样构建
dict

def create_dict(keys,values):
  return dict(zip(keys, values + [None] * (len(keys) - len(values))))

这只适用于键的长度。

您想要生成的dict是不可能的-它包含多个相同键的键,这在dict中是不允许的

您可以有一个指向值列表的单键:

import collections
import itertools

d = collections.defaultdict(list)
for k, v in zip(itertools.cycle(listA), listB):
    d[k].append(v)
这将生成一个如下的dict:

{
    1: [A, A, A, A],
    2: [B, B, B, B],
    3: [C, C, C, C],
    4: [D, D, D, D],
}

Python dict不能有两个相等的键,如您的示例所示。字典中的键必须是唯一的,因此您的结果是不可能的。您希望从一个看起来多次将完全相同的键映射到完全相同的值的字典中获得什么?您所说的“我的某些值为空”是什么意思?这个问题非常不清楚。根据您所写的内容(这是我们必须继续讨论的唯一内容)不清楚。谢谢,这正是我想要的,因为
listA
是列标题,
listB
是单元格values@pyth0nBen听起来很像数据帧。也许你会觉得有用。