Python,根据值大小打印字典键
我希望根据值的大小打印密钥 让我们在我的字典里说我有Python,根据值大小打印字典键,python,dictionary,printing,key-value,Python,Dictionary,Printing,Key Value,我希望根据值的大小打印密钥 让我们在我的字典里说我有 ('l', 2) ('o', 1) ('h', 1) ('e', 1) 我想把这个打印成 L, L, O, H, E 这些字符可以在用户输入时在我的代码中更改。迭代字典,对于每个键,您将获得其值。然后打印键那么多次 for key in dictionary.keys(): value = dictionary[key] i = 0 while i < value: print key 字典中的键的。
('l', 2)
('o', 1)
('h', 1)
('e', 1)
我想把这个打印成
L, L, O, H, E
这些字符可以在用户输入时在我的代码中更改。迭代字典,对于每个
键
,您将获得其值。然后打印键
那么多次
for key in dictionary.keys():
value = dictionary[key]
i = 0
while i < value:
print key
字典中的键的。键()
值=字典[键]
i=0
而我<值:
打印键
('l',2)('o',1)('h',1)('e',1)
不是字典。此外,字典元素没有顺序。因此,您可能无法以相同的顺序获得L,L,O,H,E
。转换为dict:my_dictionaryd=dict([('L',2),('O',1),('H',1),('E',1)])
它对值进行降序排序。但是当我打印时,它不会重复吗?对于dict中的key:for i in range(dict[key]):print key
虽然这个代码可能是正确的,但请您留下更多的解释,说明OP如何在他的示例中从这个代码中学习。
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
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'