我正在处理如下文本字符串:
LN1 2DW, DN21 5BJ, DN21 5BL, ...
在Python中,我该如何计算逗号之间的元素数?每个元素可以由6、7或8个字符组成,在我的示例中显示了3个元素。分隔符始终为逗号。
我以前从未做过任何与文本挖掘相关的事情,所以这将是我入门的开始。
我正在处理如下文本字符串:
LN1 2DW, DN21 5BJ, DN21 5BL, ...
在Python中,我该如何计算逗号之间的元素数?每个元素可以由6、7或8个字符组成,在我的示例中显示了3个元素。分隔符始终为逗号。
我以前从未做过任何与文本挖掘相关的事情,所以这将是我入门的开始。
您可以数逗号的数量:
text.count(",") + 1
# 3
.strip
等方法来简单地对每个元素进行后处理。 - Willem Van Onsem.split(..)
肯定不太高效。首先,它会导致线性数量的malloc
,此外,大多数Python解释器使用一些轻量级模式。 - Willem Van OnsemWillien和Psidom已经提到了count
,
我只想补充一点,在Python中字符串也是可迭代的,因此列表推导也可以应用:
n = len([c for c in ','+text if c==','])
或者
n = sum(1 for c in ','+text if c==',')
len(list(filter(lambda x: ord(x) == 44, text)))+1
,但它真的没有增加任何东西。 - Chris_Rands
ipython
和其内置的%timeit
。结果如下:text.count(',')+1
: 每个循环 665 纳秒 ± 3.06 纳秒len(text.split(','))
: 每个循环 3.59 微秒 ± 19.3 纳秒测试数据是一个包含 91 个元素的列表。 - Skillmon