【发布时间】:2020-04-25 08:33:51
【问题描述】:
我正在尝试找到在不使用正则表达式的情况下计算字母数字单词的最佳方法,这就是我所做的。
for line in csv:
total_lines += 1
total_words = len(line.split())
line_char_count = sum(map(str.isalnum, line.split()))
line_details.append("Line %d has %d Alphanumeric word/s" % (total_lines, line_char_count))
for line in line_details:
print (line)
它不计算字母数字词,而是排除字母数字词并计算非字母数字词。所以我尝试了另一种方法:
for line in csv:
total_lines += 1
total_words = len(line.split())
line_char_count = sum(map(str.isalnum, line.split()))
count = total_words - line_char_count
line_details.append("Line %d has %d Alphanumeric word/s" % (total_lines, count))
for line in line_details:
print (line)
我从字符串的总字数中扣除了 line_char_count。现在,它给了我一个接近的答案,但标点符号仍然被计算在内。我不知道去除标点符号的最佳方法是什么。 或者,如果您有更好的方法来计算字母数字单词,请帮助我。 谢谢
【问题讨论】:
-
这很难回答,因为不清楚您所说的字母数字词是什么意思。例如,如果单词被引号括起来,它是否算数?因为那不是严格的字母数字。如果这个词有撇号,它算数吗?写“轻松”是一两个字吗?
-
使用
split()方法的解决方案由于句号而错过计算句子的最后一个单词可能是该方法中最明显的缺陷。除了特德已经注意到的情况。此外,您可能还想计算由许多其他字符分隔的单词,例如斜线“动物/宠物”.. 列表还在继续。 -
@TedKleinBergman 字母数字,如 l8ter、2go、2night 之类的
-
@Todd 哦,所以我真的应该排除标点符号。谢谢
标签: python alphanumeric