2011-05-22 46 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

相關問題