在Python字典中将不同的项附加到不同的键

时间:2016-11-21 14:26:05

标签: python list dictionary append

我已经初始化了一个字典:

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的原因仅仅是出于演示目的;附加值可能非常通用,例如字母或其他随机数。

2 个答案:

答案 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], 
}