试图打印具有一定长度的单词数

iKy*_*aki 2 python

此函数的格式为numLen(s,n):其中s是字符串,n是整数.代码应该做的是返回字符串中长度为n的单词数,所以:

numLen("这是一个测试",4)

将返回2,因为两个单词有4个字符.

def numLen(s, n):
'''
takes string s and integer n as parameters and returns the number of words
in the string s that have length n
'''
return s.split()
if len(s) == n:
    return 'hello'
Run Code Online (Sandbox Code Playgroud)

我试图将字符串拆分成一个列表并检查该列表中每个单词的长度,但这似乎没有成功.我设法得到的最远的是当我用14替换4时返回"你好",只是为了查看长度代码是否有效.

Ósc*_*pez 5

试试这个:

def numLen(s, n):
    return sum(1 for x in s.split() if len(x) == n)
Run Code Online (Sandbox Code Playgroud)

我正在使用生成器表达式,它的工作原理如下:

  • 首先,我们s使用单词分割字符串split()
  • 然后,我们过滤那些具有完全长度的单词 n
  • 我们1为每个符合条件的人添加
  • 最后我们添加了所有的1s