2015-04-22 32 views
-6

我期待打印取決於值量的關鍵...Python中,印刷字典關鍵取決於貨值金額

讓我的字典裏說我有...

('l', 2) 
('o', 1) 
('h', 1) 
('e', 1) 

我想打印此作爲

L, L, O, H, E 

這些字符可以更改我的代碼,因爲它們是用戶輸入。

+3

'( '1',2)( 'O',1)( 'H',1)( 'E',1)'不是詞典。 – thefourtheye

+2

另外,字典元素沒有排序。所以,你可能不會以相同的順序得到'L,L,O,H,E'。 – thefourtheye

+0

轉換爲字典:'my_dictionaryd = dict([('l',2),('o',1),('h',1),('e',1)])' – Mohsen

回答

0

迭代字典和每個Key你會得到它的value。並打印key那麼多次。

for key in dictionary.keys(): 
    value = dictionary[key] 
    i = 0 
    while i < value: 
     print key 
0
my_dictionary = dict([('l', 2), ('o', 1), ('h', 1), ('e', 1)]) 
ans = "" 

for key in my_dictionary: 
    for rep in xrange(my_dictionary[key]): 
     ans+=key+" ," 
print ans[:-2] #To remove the trailing comma 
+1

儘管這段代碼可能是正確的,但是請您留下更多關於OP如何從他的例子中的這段代碼中學習的解釋。 –

2
alist = [('l', 2), ('o', 1), ('h', 1), ('e', 1)] 
alist.sort(key=lambda x: x[1], reverse=True) 
print ', '.join(list(''.join([key.upper()*val for key, val in alist]))) 

## prints 'L, L, O, H, E'