Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从字符串末尾删除逗号和句点_Python_String_List - Fatal编程技术网

Python 如何从字符串末尾删除逗号和句点

Python 如何从字符串末尾删除逗号和句点,python,string,list,Python,String,List,我有这样一段话: 小腿排骨球头,法兰克福恶魔岛尾部潘切塔皮卡尼亚 牛肋比尔顿猪鹿肉鸡火腿节。丁骨牛排 鸡肉、猪肉干、里脊肉、安多维尔肉鸭、凯文短排骨。 鸡腿培根短腰肉,火鸡,鸭肉,猪排 猪肚皮doner biltong火腿节。猪汉堡里脊肉面包 意大利熏火腿肉丸舌头鸡腿火腿飞节。肉丸 bresaola landjaeger doner胸脯猪肚潘切塔排骨 咸牛肉里脊培根肥背猪肉里脊肉后腿凯文 安多维尔牛肉火腿卡皮科拉比尔顿。咸牛肉猪排 火鸡,比尔顿基尔巴萨火腿,短腰肉,圆面包 肩膀 我需要写一段代码

我有这样一段话:

小腿排骨球头,法兰克福恶魔岛尾部潘切塔皮卡尼亚 牛肋比尔顿猪鹿肉鸡火腿节。丁骨牛排 鸡肉、猪肉干、里脊肉、安多维尔肉鸭、凯文短排骨。 鸡腿培根短腰肉,火鸡,鸭肉,猪排 猪肚皮doner biltong火腿节。猪汉堡里脊肉面包 意大利熏火腿肉丸舌头鸡腿火腿飞节。肉丸 bresaola landjaeger doner胸脯猪肚潘切塔排骨 咸牛肉里脊培根肥背猪肉里脊肉后腿凯文 安多维尔牛肉火腿卡皮科拉比尔顿。咸牛肉猪排 火鸡,比尔顿基尔巴萨火腿,短腰肉,圆面包 肩膀

我需要写一段代码,找出某个单词被说了多少次。我不知道如何删除这些单词旁边的逗号和句点!以下是我到目前为止的情况:

for line in input_file:
    lines = line.split(' ')
    lines = line.replace('\n', '')
    new_List.append(lines)

有几件事可能会有所帮助。首先:

注意:未将参数传递给:

如果可选的第二个参数sep不存在或没有,则单词将由任意的空白字符字符串(空格、制表符、换行符、回车符、formfeed)分隔

接下来,您可以使用来计算每个单词的出现次数,而不是
计数器

for word in s.split():
    print word, s.count(word)
str.split
的另一个选项是:

最后,作为您问题的一部分,您可以使用从字符串末尾剥离字符:

s = 'foobar.,'
t = s.rstrip('.,')

您可以非常轻松地使用计数器执行此操作:

import string
from collections import Counter

# s = s.lower() # if you don't care about case
chars = set(string.ascii_letters + string.whitespace)
c = Counter(''.join(c for c in s if c in chars).split())

您只需按非单词字符的出现次数分割字符串,除了“T-bone”中表达式之间的字符,如
-

可能是复制品,甚至更好,
for word in re.findall(r'[a-zA-Z-_]+', s):
    print word, s.count(word)
s = 'foobar.,'
t = s.rstrip('.,')
import string
from collections import Counter

# s = s.lower() # if you don't care about case
chars = set(string.ascii_letters + string.whitespace)
c = Counter(''.join(c for c in s if c in chars).split())
import re
from collections import Counter

s = '''Shank spare ribs ball tip, frankfurter alcatra rump pancetta 
       picanha beef ribs biltong pig venison chicken ham hock. 
       T-bone beef ribs chicken pork jerky...
    '''

Counter(re.split(r'(?!<\w)\W(?!\w)|\s+', s))
Counter(re.split(r'[,\s.]', s))