将Lambda与列表一起使用

iGw*_*wok 4 python lambda python-2.7

我试图检查字符串对象是否在列表中.简写如下:

if str in list:
Run Code Online (Sandbox Code Playgroud)

我面临的问题是这个列表不是字符串列表,而是表的列表.我知道如果直接进行这种比较,什么都不会发生.我想要做的是访问每个名为'Name'的表的属性.

我可以创建一个新列表,并对其进行比较:

newList = []
for i in list:
    newList.append(i.Name)
Run Code Online (Sandbox Code Playgroud)

但由于我还是一个新手,我对Lambda很好奇,并想知道是否有可能实现它?

类似的东西(......但可能没什么):

if str in list (lambda x: x.Name):
Run Code Online (Sandbox Code Playgroud)

小智 6

你可以写

if str in [x.Name for x in list]
Run Code Online (Sandbox Code Playgroud)

或者更懒惰,

if str in (x.Name for x in list)
Run Code Online (Sandbox Code Playgroud)

在后者(使用parens)它构建一个生成器,而在前者(带括号),它首先构建完整列表.