为什么我只得到列表的第一个单词
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
答案 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) );