python - 计算不包括空格的字符数 - python

标签 python regex string whitespace

哪种方法可以更快地计算没有空格的字符数? 哪个更Pythonic?

def sent_length(sentence):
  return sum(1 for c in sentence if c != ' ')

def sent_length(sentence):
  return len(sentence.replace(" ", ""))

import re 
pattern = re.compile(r'\s+')

def sent_length(sentence):
  return len(re.sub(pattern, '', sentence))

最佳答案

您可以从python -m timeit获取计时:

[matt tmp] python -m timeit "sum(1 for c in 'blah blah blah' if c != ' ')"
100000 loops, best of 3: 2.96 usec per loop
[matt benchmark] python -m timeit -s "import re; pattern = re.compile(r'\s+')" "len(pattern.sub('', 'blah blah blah'))"
100000 loops, best of 3: 2.2 usec per loop
[matt tmp] python -m timeit "len(''.join('blah blah blah'.split()))"
1000000 loops, best of 3: 0.785 usec per loop
[matt tmp] python -m timeit "len('blah blah blah'.replace(' ', ''))"
1000000 loops, best of 3: 0.437 usec per loop
[matt tmp] python -m timeit "len('blah blah blah') - 'blah blah blah'.count(' ')"
1000000 loops, best of 3: 0.384 usec per loop

这将帮助您确定什么是最快的。更Python化?我会选择最快的,因为性能总是很重要。

关于python - 计算不包括空格的字符数 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25186809/

相关文章:

python - 在Python中的进程之间共享/使用对象

python - setuptools和pip的依赖解析的区别

javascript - 正则表达式在 streetNumber 上验证时出现问题

c++ - 为什么 sizeof(str.substr(0,3).c_str()) 给我 8?

python - Python 函数究竟是如何返回/产生对象的?

python - 将类似范围的序列连接到元组列表

Javascript:删除字符串标点符号并拆分成单词?

python - 如何使用正则表达式删除制表符和换行符

sql-server - SQL Server 中的encode(<columnName>, 'escape' ) PostgreSQL 等效项是什么?

c# - ASP.NET GridView 删除 'Input string was not in a correct format'