为了账号安全,请及时绑定邮箱和手机立即绑定

过滤字符串列表并返回一个仅包含您朋友姓名的列表

过滤字符串列表并返回一个仅包含您朋友姓名的列表

慕森卡 2023-09-12 19:50:04
我正在学习 Python 并试图解决同样的问题(“朋友还是敌人?”)。我编写了下面的代码,并想了解如何按照“我的逻辑”方式继续前进。看起来它只将第一个项目添加到列表中new_friends,但不会迭代列表的所有元素x。除了上面之外,返回值是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。
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

这是您的函数的修复版本,我相信您想要的功能:


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']


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信