首页 > 解决方案 > 如果满足条件,则从列表中返回名称

问题描述

我有一个包含姓名、年龄和性别的人员列表,我希望能够从中提取出符合条件的人的姓名(>= 18)

people = [('John', 36, 'M'), ('Rachel', 24, 'F'), ('Deardrie', 78, 'F'), ('Ahmed', 17, 'M'), ('Sienna', 14, 'F')]

我已经尝试了以下但没有返回我需要的三个名字(约翰、瑞秋和迪德丽)

def adults(members):
    for person in people:
        if person[1] >= 18:
            return members

认为我遗漏了一些明显的东西,但看不到它是什么!

非常感谢

标签: pythonlistloops

解决方案


您的代码不起作用,因为您要返回成员,这是参数。(我不知道为什么你首先有一个参数)。你可以做这样的事情。

adults = [member for member in people if member[1] >= 18]

或者如果您在函数中使用它:

def adults(people):
  return [member for member in people if member[1] >= 18]

推荐阅读