为什么我只得到列表的第一个单词

时间:2019-06-18 17:34:22

标签: python

为什么我只得到列表的第一个单词

def concat_short_words(s):
    i = 0
    word = s.split()
    while i < len(word):
        if len(word[i]) <= 4:
            result = "".join(word[i])

            return(result)
        i = i+1

4 个答案:

答案 0 :(得分:1)

您的缩进不正确

def concat_short_words(s):
  i=0
  result=[]
  word=s.split()
  while i<len(word):
     if len(word[i])<=4:
        result.append(word[i])
     i+=1
  return result

答案 1 :(得分:0)

由于“返回”,该函数以单个迭代结束,因此您必须将其置于循环之外

答案 2 :(得分:0)

您需要一个变量来保存结果和正确的缩进:

product_id = 123

可以使用for循环更简洁地重写函数:

def concat_short_words(s):
    i = 0
    word = s.split()
    result = ""
    while i < len(word):
        if len(word[i]) <= 4:
            result += word[i]
        i = i+1
    return(result)

concat_short_words('The temperature is 22.625 ˚C')

'Theis˚C'

答案 3 :(得分:0)

忽略我的假设是此函数的意外重复,您将返回匹配的第一个单词的结果。 return关键字将退出concat_short_words函数,并将结果作为返回值。因此,在与谓词“ len(word [i] <= 4””的第一个匹配点处,您将以匹配的单词的返回值退出函数。您可能要尝试的操作如下:

const dict1 = {'cat' : 1, 'dog': 3, 'bird':4,'lizard':4,'hamster': 5 };
const keyList = (obj, value) => Object.keys(obj).filter(key => obj[key] === value);

console.log( keyList(dict1,4) );