Python 如何从字符串末尾删除逗号和句点
我有这样一段话: 小腿排骨球头,法兰克福恶魔岛尾部潘切塔皮卡尼亚 牛肋比尔顿猪鹿肉鸡火腿节。丁骨牛排 鸡肉、猪肉干、里脊肉、安多维尔肉鸭、凯文短排骨。 鸡腿培根短腰肉,火鸡,鸭肉,猪排 猪肚皮doner biltong火腿节。猪汉堡里脊肉面包 意大利熏火腿肉丸舌头鸡腿火腿飞节。肉丸 bresaola landjaeger doner胸脯猪肚潘切塔排骨 咸牛肉里脊培根肥背猪肉里脊肉后腿凯文 安多维尔牛肉火腿卡皮科拉比尔顿。咸牛肉猪排 火鸡,比尔顿基尔巴萨火腿,短腰肉,圆面包 肩膀 我需要写一段代码,找出某个单词被说了多少次。我不知道如何删除这些单词旁边的逗号和句点!以下是我到目前为止的情况:Python 如何从字符串末尾删除逗号和句点,python,string,list,Python,String,List,我有这样一段话: 小腿排骨球头,法兰克福恶魔岛尾部潘切塔皮卡尼亚 牛肋比尔顿猪鹿肉鸡火腿节。丁骨牛排 鸡肉、猪肉干、里脊肉、安多维尔肉鸭、凯文短排骨。 鸡腿培根短腰肉,火鸡,鸭肉,猪排 猪肚皮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))