我已经初始化了一个字典:
dic = {'A':[],'B':[],'C':[]}
我的目标是通过附加一些值来填充字典:
{'A': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
'B': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18],
'C': [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]}
我能够这样做的方法是使用以下几行代码:
for j in range(0,10):
dic['A'].append(j)
dic['B'].append(j*2)
dic['C'].append(j*3)
我的目标是以智能和优雅的方式进行此类程序。 我想这样:
dic[['A','B','C']].append(j,j*2,j*3)
你对如何做到了吗?
注意:我的例子可能会产生误导,我道歉。我追加j,j * 2和j * 3的原因仅仅是出于演示目的;附加值可能非常通用,例如字母或其他随机数。
答案 0 :(得分:5)
以下内容将产生预期结果:
keys = ['A', 'B', 'C']
print({
key: range(0, 10 * i, i)
for i, key in enumerate(keys, 1)
})
结果:
{
'A': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
'C': [0, 3, 6, 9, 12, 15, 18, 21, 24, 27],
'B': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
}
答案 1 :(得分:3)
为了达到你想要的效果,你可以创建一个 dict理解表达式:
keys = ['A', 'B', 'C']
my_dict = {key: [j*i for j in range(10)] for i, key in enumerate(keys, 1)}
其中my_dict
将保留值:
{
'A': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
'B': [0, 2, 4, 6, 8, 10, 12, 14, 16, 18],
'C': [0, 3, 6, 9, 12, 15, 18, 21, 24, 27],
}