我想以下列格式填充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()
整数结束参数,得到列表。
答案 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)}