计算段落中出现的特殊字符数[^&$#]

Pyt*_*eam 5 python

我想[^&*$]用python计算段落中出现的特殊字符数.任何人都可以帮我简洁地做到这一点吗?我不想用于循环条件.

pyl*_*ang 7

Counter创建一组所有字符,给出迭代次数的上限。

给定一个字符串text

import string
import collections as ct


special_chars = string.punctuation
sum(v for k, v in ct.Counter(text).items() if k in special_chars)
Run Code Online (Sandbox Code Playgroud)

替换specials_chars为您想要计算的任何字符。


Flo*_*oor 4

这可能是重复的,但您可以使用 regexre.sub和 len ie 将所有单词字符替换\w'',以便最终得到非单词字符或特殊字符。

import re
x = "asdfklsdf#$&^#@!"
new = re.sub('[\w]+' ,'', x)
Run Code Online (Sandbox Code Playgroud)

输出 :#$&^#@!

len(new)
7
Run Code Online (Sandbox Code Playgroud)

如果您只想计算这些字符

new = re.sub('[^\^&*$]+' ,'', x)
Run Code Online (Sandbox Code Playgroud)