我正在学习Python并尝试解决相同的问题(“朋友还是敌人?”)。我在下面编写了代码,想了解如何按照“我的逻辑”方式继续前进。
似乎它仅将第一项添加到new_friends
列表中,但没有遍历x
list的所有元素。
除了上面的以外,返回值是None
……我在这里没有注意到什么?
def friend(x):
x = ["Ryan", "Kieran", "Jason", "Yous"]
new_friends = []
for str in x:
if len(str) == 4:
return new_friends.append(str)
return new_friends[0:]
除了if
声明以外,我还尝试了嵌套while
循环..,但未成功将其他项添加到new_friends
列表中。
这是功能的固定版本,可以满足我的要求:
def friend(x):
new_friends = []
for str in x:
if len(str) == 4:
new_friends.append(str) # no 'return' here
return new_friends # return resulting list. no need to return a slice of it
这是使用列表推导的更简洁的版本:
def friend(candidates):
return [candidate for candidate in candidates if len(candidate) == 4]
对于该函数的任一版本,此操作如下:
print(friend(["Ryan", "Kieran", "Jason", "Yous"]))
结果:
['Ryan', 'Yous']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句