从字符串中获取特定字符并将它们附加到列表中
Getting specific characters from a string and appending them to a list
我有一个字符串如下:
my_string = "Jack 无法解释 他的愚蠢错误。计算机占 5% 的国家'商业用电。是时候关注公司的核心业务了。公司需要关注它最大的客户..."
和一个列表:
Phrasal_Verbs = [
“占”,
“痛”,
“采取行动”,
“行动起来”,
“行动起来”,
“添加在”,
“专注于”
...]
我想用计数器模块找出每个短语动词在字符串中出现的次数,然后从字符串中删除短语动词。到目前为止我的代码是:
phrasal_verbs_list = []
for pv in Phrasal_Verbs:
if pv in my_string:
phrasal_verbs_list.append(pv)
my_string = my_string.replace(pv, "")
pv_count = dict(Counter(phrasal_verbs_list))
上面的代码找到了所有的短语动词,但即使字符串中有三个“Account for”,它也只给了我一个。
预期 pv_count = {'account for' : 2, 'focus on' : 2, rest_of_the_phrasal_verbs : 发生 }
得到 = {'account for': 1, 'act out': 1, 'allow for': 1, 'be in': 1, 'be on': 1, 'blow down': 1, ... 'focus on' : 1}
发生这种情况是因为 replace
替换了该字符串的所有出现,因此不会计算剩余的出现次数,因此计数为 1。
使用 my_string.replace(pv, "", 1)
仅替换第一个匹配项。那应该可以解决您的问题。
你可以简单地这样做
pv_count = {string: my_string.count(string) for string in Phrasal_Verbs}
然后,如果您想从字符串中删除动词短语:
import re
text = re.sub("|".join(pv_count.keys()), "", my_string)
您也可以直接调用 Phrasal_Verbs
而不是评论中指出的 `pv_count.keys()。
我有一个字符串如下:
my_string = "Jack 无法解释 他的愚蠢错误。计算机占 5% 的国家'商业用电。是时候关注公司的核心业务了。公司需要关注它最大的客户..."
和一个列表:
Phrasal_Verbs = [ “占”, “痛”, “采取行动”, “行动起来”, “行动起来”, “添加在”, “专注于” ...]
我想用计数器模块找出每个短语动词在字符串中出现的次数,然后从字符串中删除短语动词。到目前为止我的代码是:
phrasal_verbs_list = []
for pv in Phrasal_Verbs:
if pv in my_string:
phrasal_verbs_list.append(pv)
my_string = my_string.replace(pv, "")
pv_count = dict(Counter(phrasal_verbs_list))
上面的代码找到了所有的短语动词,但即使字符串中有三个“Account for”,它也只给了我一个。
预期 pv_count = {'account for' : 2, 'focus on' : 2, rest_of_the_phrasal_verbs : 发生 }
得到 = {'account for': 1, 'act out': 1, 'allow for': 1, 'be in': 1, 'be on': 1, 'blow down': 1, ... 'focus on' : 1}
发生这种情况是因为 replace
替换了该字符串的所有出现,因此不会计算剩余的出现次数,因此计数为 1。
使用 my_string.replace(pv, "", 1)
仅替换第一个匹配项。那应该可以解决您的问题。
你可以简单地这样做
pv_count = {string: my_string.count(string) for string in Phrasal_Verbs}
然后,如果您想从字符串中删除动词短语:
import re
text = re.sub("|".join(pv_count.keys()), "", my_string)
您也可以直接调用 Phrasal_Verbs
而不是评论中指出的 `pv_count.keys()。