首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按字母顺序对文本中出现的字母进行排序

按字母顺序对文本中出现的字母进行排序
EN

Stack Overflow用户
提问于 2013-07-18 16:20:20
回答 4查看 277关注 0票数 3

我需要呈现文本中出现的字母。如果其中一个字母没有出现,它应该显示零,输出也应该按字母顺序排序。我已经准备了以下Python代码,我的问题是如何为未出现的字母显示零,以及如何根据列表键对列表值进行排序以对输出进行排序?

代码语言:javascript
运行
复制
 fdist = Counter(c for c in f.lower() if c.isalpha())
 print sorted(fdist.items()) #only to show the output details
 print fdist.values()

示例文本的输出如下所示:

代码语言:javascript
运行
复制
[('a', 46), ('b', 5), ('c', 11), ('d', 22), ('e', 76), ('f', 13), ('g', 7), ('h', 29), ('i', 30), ('j', 1), ('k', 6), ('l', 21), ('m', 11), ('n', 34), ('o', 31), ('p', 6), ('q', 1), ('r', 24), ('s', 32), ('t', 52), ('u', 7), ('v', 2), ('w', 10), ('y', 11)]

[46, 11, 5, 76, 22, 7, 13, 30, 29, 6, 1, 11, 21, 31, 34, 1, 6, 32, 24, 7, 52, 10, 2, 11]

但输出应如下所示:

代码语言:javascript
运行
复制
[46, 5, 11, 22, 76, 13, 7, 29, 46, 1, 6, 21, 11, 34, 31, 6, 1, 24, 32, 52, 7, 2, 10, 0, 11, 0]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-18 16:25:51

像这样的事情(暂时忽略排序部分)?

代码语言:javascript
运行
复制
import string

result = [fdist.get(l, 0) for l in string.letters]

代码语言:javascript
运行
复制
result = [fdist.get(l, 0) for l in string.ascii_lowercase]

因为您只处理小写字符

票数 2
EN

Stack Overflow用户

发布于 2013-07-18 16:22:28

注:@astrognocci更简单、更优雅,但这也是可行的。

使用字母表的键创建计数器(但最初设置为零)

代码语言:javascript
运行
复制
import string
fdist = Counter([f for f in string.ascii_lowercase])
for c in string.ascii_lowercase:
    fdist[c] = 0

sorted(fdist.items())返回一个已排序的列表,它不会对项目进行适当的排序。您可以创建排序列表的副本,然后使用排序列表,如下所示;

代码语言:javascript
运行
复制
 x = sorted(fdist.items())
 print x.values()

或者你可以就地对列表fdist进行排序;

代码语言:javascript
运行
复制
 fdist.items().sort()
 print fdist.values()
票数 1
EN

Stack Overflow用户

发布于 2013-07-18 16:43:20

代码语言:javascript
运行
复制
#!python
import string
from collections import Counter

fdist = Counter(string.lowercase)
for k in fdist.keys():
    fdist[k] = 0 

# process your data:
for c in f:
    if c.isalpha():
        fdist.update(c.lower())

# print it
print [fdist[k] for k in sorted(fdist.keys())]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17718222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档