gpt4 book ai didi

python - 类型错误 : endswith first arg must be str or a tuple of str, 不是 boolean 值

转载 作者:行者123 更新时间:2023-11-28 21:13:23 26 4
gpt4 key购买 nike

我试图计算以多个后缀结尾的单词的出现次数。我认为 endswith 会接受一个可迭代对象;不幸的是,它没有。下面是代码片段:

s = 'like go goes likes liked liked liking likes like'
lst = s.split()
suffixes = ['s', 'es', 'ies', 'ed', 'ing']

counter = 0
prompt = 'like'
for x in lst:
if x.startswith(prompt) and x.endswith(any(suffix for suffix in suffixes)):
counter += 1

counter 的值在执行结束时应该是4。这是显示的错误消息:

TypeError: endswith first arg must be str or a tuple of str, not bool

如何让上面的代码工作?

最佳答案

any 函数返回一个 bool 值,但 str.startswith 需要一个字符串或一个字符串元组。

您可以将列表转换为元组并将其传递给 startswith:

x.endswith(tuple(suffixes))

关于python - 类型错误 : endswith first arg must be str or a tuple of str, 不是 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32889157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com