我在这里尝试的是按照字符在字符串中出现的次数逆序显示字符。如果两个字符具有相同的出现次数,则应按字母顺序显示它们。
因此,给定一个字符串 'abaddbccdd',我想要的输出是: ['d', 'a', 'b', 'c']
以下是我目前所做的:
因此,给定一个字符串 'abaddbccdd',我想要的输出是: ['d', 'a', 'b', 'c']
以下是我目前所做的:
>>> from collections import Counter
>>> s = 'abaddbccdd'
>>> b = Counter(s)
>>> b
Counter({'d': 4, 'a': 2, 'c': 2, 'b': 2})
>>> b.keys()
['a', 'c', 'b', 'd']
>>> c = sorted(b, key=b.get, reverse=True)
>>> c
['d', 'a', 'c', 'b']
>>>
如何处理第二部分?'a'、'b'和'c'在文本中都恰好出现两次,且顺序不正确。最好的方法(希望是最短的方法)是什么?
['a', 'b', 'c', 'd']
,而不是所期望的['d', 'a', 'b', 'c']
。 - PM 2Ring-ord(char)
。你的解决方案适用于OP的目的,但当dict
键不是单个字符时,它当然无法工作。当dict
值为非数字时,我的版本当然也无法工作,尽管如果保证dict
是计数器,则这不是问题。 - PM 2Ring