填写int和str混合的字典

时间:2017-11-26 03:41:26

标签: python

我想以下列格式填充dict:

columns=[14,116]
spaces = {'A':[int(i) for i in range(0,columns[0])], 'B': [int(i) for i in range(0,columns[1])]}

如果cols只[14,116]那很容易,但是如果cols有问题我会遇到问题,比如这里我有cols = [14,16,117,18,180,190]。为了解决这个问题,我尝试了这段代码:

alphabet=['A','B','C','D','E','F']
columns=[14,16,117,18,180,190]
spaces = dict(zip(alphabet, [int(i) for i in range(0,columns)]))

但我不知道在zip

中放置列[0],列[1]

预期产出:

namespaces = {'A':[int(i) for i in range(0,cols[0])],
                   'B': [int(i) for i in range(0,cols[1])], 'C': [int(i) for i in range(0,cols[2])], and so on...}

BTW,上面的错误会引发错误:

预期

range()整数结束参数,得到列表。

1 个答案:

答案 0 :(得分:2)

您可以使用zip

alphabet=['A','B','C','D','E','F']
cols=[14,16,117,18,180,190]
new_dict = dict(zip(alphabet, cols))

输出:

{'A': 14, 'C': 117, 'B': 16, 'E': 180, 'D': 18, 'F': 190}

编辑:使用range功能:

new_dict = {a:list(range(b)) for a, b in zip(alphabet, cols)}