这段代码中存在几个问题:
1. `str_line.strip(";")` 和 `str_line.strip("+")` 不会修改原字符串,需要将修改后的结果赋值给一个变量。
2. `str_line.join(" ")` 的参数是应该是一个列表而不是一个字符串,可以使用 `split()` 将字符串转换成列表再进行操作。
3. 修改字符串没有实际效果,需要将修改后的字符串赋值给 `str_line`。
以下是修改后的代码:
- def TEST_DO_NOT_CHANGE(str_line):
- word_dict = {}
-
- # 去除非字符符号并将单词之间用空格隔开
- str_line = str_line.replace("+", " ").replace(";", " ")
-
- # 统计每个单词出现的次数
- words = str_line.split()
- for word in words:
- if word in word_dict:
- word_dict[word] += 1
- else:
- word_dict[word] = 1
-
- return word_dict
- if __name__ == "__main__":
- str_line = "abc fjf jkl+ abc abc jkl;"
- print(TEST_DO_NOT_CHANGE(str_line)) # 输出 {"abc": 3, "fjf": 1, "jkl": 2}
复制代码
修改后的代码使用了 `replace()` 替换非字符符号,使用了 `split()` 转换成列表,并且将修改后的字符串赋值给了 `str_line`。
有用请设置最佳答案