0
假設我們有一個Python中的整數列表L和一個函數F,它取整數並返回一個布爾值。我有以下代碼:在列表中搜索並根據謂詞在python中做搜索
for i in L:
if F(i):
do_whatever(i)
有在巨蟒在一條線這樣的方式,或者說,一個更Python的方法呢?
假設我們有一個Python中的整數列表L和一個函數F,它取整數並返回一個布爾值。我有以下代碼:在列表中搜索並根據謂詞在python中做搜索
for i in L:
if F(i):
do_whatever(i)
有在巨蟒在一條線這樣的方式,或者說,一個更Python的方法呢?
使用內置在python功能:
map(do_whatever, filter(F, L))
儘管這確實創建了一個新的列表(或者它是一個迭代器),它可能不是必需的。我會最初使用map,然後考慮後來的性能問題,如果它成爲問題。而在python3中,你得到了一個迭代器,所以你必須使用它來做任何事情。 –
'[富(ⅰ),其中i爲L如果巴(I)]' –
一行:'用於i的L:如果F(I) :do_whatever(i)' –
你目前的做法似乎很pythonic;不是一切都是爲了1行 –