2016-11-21 120 views
0

我已經初始化一個字典,像這樣:在Python字典追加不同的項目,不同的密鑰

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的原因只是爲了示範目的;附加值可能非常通用,例如字母或其他隨機數字。

+1

'(dic [x] .append(j ** i)對於j在範圍內(10)對於i,x在枚舉中(['A','B','C']))'意味着你只需要'j'一次範圍 –

+0

你可以給另一個字母例子嗎? –

+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] 
} 
+0

雖然你已經回答了OP的問題。我必須認爲這個屬於明確的類別比隱含類型更好。就我個人而言,我認爲運營商應該堅持他的解決方案。雖然在這方面的榮譽,我想不出任何東西。 – Hoopdady

3

爲了實現你想要什麼,你可以創建一個字典理解表達:

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], 
} 
相關問題