【问题标题】:Python, Printing dictionary key dependent on value amountPython,打印字典键取决于值量
【发布时间】:2015-06-29 21:06:02
【问题描述】:

我希望根据值的数量打印密钥...

让我们在我的字典里说我有...

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

我想把它打印成

L, L, O, H, E

这些字符可以在用户输入时在我的代码中更改。

【问题讨论】:

  • ('l', 2) ('o', 1) ('h', 1) ('e', 1) 不是字典。
  • 另外,字典元素没有排序。因此,您可能无法完全按照相同的顺序获得L, L, O, H, E
  • 转换成字典:my_dictionaryd = dict([('l', 2), ('o', 1), ('h', 1), ('e', 1)])
  • 它对值进行降序排序。但是当我打印时它不会重复?
  • for key in dict: for i in range(dict[key]): print key

标签: python dictionary printing key-value


【解决方案1】:
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'

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

    • 虽然此代码可能是正确的,但请您在他的示例中留下更多关于 OP 如何从此代码中学习的解释。
    【解决方案3】:

    迭代字典,对于每个Key,您将得到它的value。并多次打印key

    for key in dictionary.keys():
       value = dictionary[key]
       i = 0
       while i < value:
          print key
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多