如何计算分号之前或之后的单词

时间:2018-08-17 07:33:23

标签: python

countLeft=0
countRight=0
for line in open("jane_eyre_sentences.txt"):
  line_strip = line.rstrip();
  splitWord = line_strip.split(";");
  leftWord=splitWord[0].split();
  rightWord=splitWord[1].split();
  for word in leftWord:
    countLeft+=1

  for word in rightWord:
    countRight+=1

示例: -----“贝西说我做了什么?”我问。

-----“简,我不喜欢小伙子或发问者;此外,一个孩子真的禁止这种长老的事情。

-----坐在某处;直到你能说出愉快的声音,然后保持沉默。”   

每个句子中最多只能有一个分号。我的问题是某些句子不包含分号,因此rightWord = Word [1] .split()会超出范围。该怎么做?

1 个答案:

答案 0 :(得分:0)

首先,使用分号作为分隔符分割字符串。

split_string将是一个列表。现在检查长度。如果长度为1,则字符串没有分号。如果长度为2,则长度为1个分号。 (我不知道您是否会遇到一个问题,因为问题中没有提到该分号。)

检查长度后,您可以对单词进行拆分计算。

完整示例代码:

split_string = some_string.split(";")

if not split_string:
    left_words = 0
    right_words = 0
elif len(split_string) > 1:
    left_words = len(split_string[0].split())
    right_words = len(split_string[1].split())
else:
    left_words = len(split_string[0].split())
    right_words = 0

print "Left words: ", left_words
print "Right words: ", right_words

如果 some_string 是*“这是一个带有;分号的字符串”,则输出为:

Left words:  6
Right words:  1

如果 some_string 是*“这是没有分号的字符串”,则输出为:

Left words:  7
Right words:  0

干杯。