我想要一份在他们的 shopCart 中有东西的成员的列表。请看下面的例子:
users=[
{"name":"John","age":18,"shopCart":["Python","Csharp","Java"]},
{"name":"Ellen","age":19,"shopCart":[]},
{"name":"Eric","age":21,"shopCart":["Python","Java"]},
{"name":"Jennifer","age":20,"shopCart":[]}
]
buyUsers = map(lambda user:user["name"], filter(lambda user:user["shopCart"],users))
print(list(buyUsers))
['John','Eric']
上面的代码运行良好并给出了我想要的答案,但我是在互联网上找到的。我的问题是为什么不能使用 thisfilter()而不是map(),换句话说,我的意思是为什么下面的代码不只给出在他们的 shopCart 中有东西的用户的名字?
buyUsers = filter(lambda user:user["name"], filter(lambda user:user["shopCart"],users))
print(list(buyUsers))
[{'shopCart': ['Python', 'Csharp', 'Java'], 'name': 'John', 'age': 18}, {'shopCart':
['Python', 'Java'], 'name': 'Eric', 'age': 21}]
白衣非少年
智慧大石
相关分类