按照字母顺序创建一个有序列表,其中包括句子中的字母和标点符号,以及每个字符出现的次数

2024-10-03 19:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一句话

一个男人走进一家酒吧,要了1.4杯根啤酒。酒保说:“我得额外收费,那是根啤酒浮子。”。那家伙说:“那样的话,最好是双份的。你知道吗

我知道我可能必须使用RegEx或其他什么,同时还要确保基于空格的空闲空间,以便每个单词都可以单独完成。你知道吗

另外,我正尝试在python3上实现这一点。你知道吗


Tags: 空间单词python3空闲regex酒吧空格啤酒
2条回答

最简单的是^{}。然后您可以对其项目进行排序:

>>> from collections import Counter
>>> c = Counter(s)
>>> for char, num in sorted(c.items()):
...   print(repr(char), num)
' ' 25
'"' 2
"'" 2
',' 1
'.' 2
'1' 1
'4' 1
'A' 1
'I' 1
'T' 1
'a' 13
'b' 4
'c' 1  
# ...

您可以使用collections.Counter

from collections import Counter
s = 'A guy walks into a bar and asks for 1.4 root beers. The bartender says "Ill have to charge you extra, thats a root beer float". The guy says "In that case, better make it a double.'
frequencies = Counter(list(s))
new_data = sorted(frequencies.items())
print(new_data)

输出:

[(' ', 36), ('"', 3), (',', 2), ('.', 4), ('1', 1), ('4', 1), ('A', 1), ('I', 2), ('T', 2), ('a', 18), ('b', 6), ('c', 2), ('d', 3), ('e', 16), ('f', 2), ('g', 3), ('h', 6), ('i', 2), ('k', 3), ('l', 5), ('m', 1), ('n', 4), ('o', 10), ('r', 11), ('s', 10), ('t', 14), ('u', 4), ('v', 1), ('w', 1), ('x', 1), ('y', 5)]

相关问题 更多 >