如何计算python中的后缀数?

2024-09-27 07:19:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做几件事,首先我必须拆分一个字符串(这是一个段落),然后去掉每个字符串的标点符号。为此,我做了以下工作:

a = string1.split()

print(a)

punc = "?.,!"

a = ["".join(c for c in s if c not in punc) for s in a]

print(a)

在这之后,我要数一数有多少词以“ing”结尾。我试过各种各样的方法,但由于某些原因,当他们应该数到10时,他们总是数到0。这是我最近的一次尝试:

^{pr2}$

我做错什么了?在


Tags: 方法字符串inforif结尾notsplit
3条回答

而不是

if any (''.endswith(suffix) for s in a):
    suffix_count += 1

试试看

^{pr2}$

你的代码的问题是你要检查空字符串是否以“suffix”结尾(它总是错误的),但是即使你正确地检查了:你只增加了一次后缀数,与多少字符串以“suffix”结尾无关。在

你可以:

suffix_count = len([s for s in a if s.endswith(suffix)])

只需形成以后缀结尾的所有字符串的列表,然后计算该列表的长度,当然也就是以后缀结尾的字符串的数量。我认为它比显式的for循环更干净。在

有一种更简单的方法可以使用rstrip删除punc和sum,因此我们不需要遍历每个字符:

sum(s.rstrip(punc).endswith("ing") for s in a)

因此,您的双循环可以替换为以下内容来删除punc:

^{pr2}$

同时使用string.punctuation可能更好:

from string import punctuation
a = [s.rstrip(punctuation) for s in a]

相关问题 更多 >

    热门问题