python中字母大小顺序依次是_按频率排序计数器,然后按字母顺序在Python中排序...

我试图使用计数器按出现次数对字母进行排序,并将具有相同频率的任何字母按字母顺序排列,但我无法访问它生成的字典的值.

letter_count = collections.Counter("alphabet")

print(letter_count)

生产:

Counter({'a': 2, 'l': 1, 't': 1, 'p': 1, 'h': 1, 'e': 1, 'b': 1})

如何按频率排序,然后按字母顺序排序,所以只显示一次的所有内容都按字母顺序排列?

解决方法:

听起来你的问题是如何按频率对整个列表进行排序,然后按字母顺序打破关系.您可以像这样对整个列表进行排序:

>>> a = sorted(letter_count.items(), key=lambda item: (-item[1], item[0]))

>>> print(a)

# [('a', 2), ('b', 1), ('e', 1), ('h', 1), ('l', 1), ('p', 1), ('t', 1)]

如果您希望输出仍然是dict,可以将其转换为collections.OrderedDict:

>>> collections.OrderedDict(a)

# OrderedDict([('a', 2),

# ('b', 1),

# ('e', 1),

# ('h', 1),

# ('l', 1),

# ('p', 1),

# ('t', 1)])

如您所见,这保留了订购. ‘a’首先是因为它最常见.其他所有内容都按字母顺序排序.

标签:python,python-3-x,python-collections

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值