2011-05-22 69 views

回答

1

编辑:COS发生器表情我会离开这个答案有用的野兽(特别是与anyall一起),但如果您只是测试列表中的成员资格,那么您应该使用in


any(var == i for i in my_list) 

说明:

any是一个函数,它接受可迭代对象,并返回真,如果该迭代的任何元素为真。

列表理解[x == i for i in my_list]是依次将x与列表中的每个值进行比较的布尔值列表。如果它们中的任何一个是真的,则x == i。因此,如果您在该清单上拨打any,您将得到您想要的答案。

如果您在编写列表理解时将[]更改为(),您将得到一个生成器对象,而不是在内存中构造这些值。如果您传递一个生成器表达式作为函数的唯一参数,则可以省略额外的一组括号,以保留上面的整齐语法。

还有一个功能all

+1

这是更好的my_list' – 2011-05-22 09:58:27

+0

@Eli使用'VAR:哎呀。助教。 – katrielalex 2011-05-22 10:01:49

6

使用in

> lst = [1,'r'] 
> v = 1 
> v in lst 
True 
+1

*咳嗽*阴影'列表'是不好的*咳嗽* – katrielalex 2011-05-22 10:02:10

+0

是真的,这只是为了清晰。 – manji 2011-05-22 10:04:15

相关问题