Python 为int和str的混合填充字典

Python 为int和str的混合填充字典,python,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只有[14116],这很容易,但如果cols有,我会遇到问题,例如这里我有cols=[14,16117,18180190]。为了解决这个问题,我尝试了以下代码: alphabet=['A','B','C','D','E','F'

我想用以下格式填充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只有[14116],这很容易,但如果cols有,我会遇到问题,例如这里我有cols=[14,16117,18180190]。为了解决这个问题,我尝试了以下代码:

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)]))
但我不想把[0]列和[1]列放在zip中

预期产出:

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...}
顺便说一句,上述错误会引发一个错误:


range()

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}
编辑:使用
范围
功能:

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

您可以使用
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}
编辑:使用
范围
功能:

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

你好我已经编辑了这个问题。我发布了错误的问题版本。非常抱歉!谢谢,但是预期的输出应该是这样的:名称空间={'A':[int(i)表示范围(0,cols[0])],'B':[int(i)表示范围(0,cols[1])],'C':[int(i)表示范围(0,cols[2])]内的i,等等……}太棒了!谢谢你好。我已经编辑了这个问题。我发布了错误的问题版本。非常抱歉!谢谢,但是预期的输出应该是这样的:名称空间={'A':[int(i)表示范围(0,cols[0])],'B':[int(i)表示范围(0,cols[1])],'C':[int(i)表示范围(0,cols[2])]内的i,等等……}太棒了!谢谢你知道
int(i)for i in range
就是
range
,你知道
int(i)for i in range
就是
range
,对吗?