2015-08-21 64 views
2

在python中,使用'filter'函數可以與'lambda'函數結合使用,從字符串/列表中移除不需要的項目非常簡單。在蟒蛇,它是那樣簡單:Python中是否存在與「Filter」函數等價的Swift?

a = "hello 123 bye-bye !!£$%$%" 
b = list(filter(lambda x: x.isalpha(), a)) 
c = "".join(b) 
print(c) #Which would print "hellobyebye" 

有沒有辦法在迅速輕鬆地複製這種不先轉換爲Unicode,然後檢查是否Unicode值是在一定範圍內?另外,有沒有像'lambda'一樣迅速的東西?

+2

[列表中夫特理解](HTTP的可能重複://計算器。 com/questions/24003584/list-comprehension-in-swift) – TigerhawkT3

+0

注意:上述鏈接中的列表理解包含一個過濾表達式。 – TigerhawkT3

+0

我不是100%確定這將如何工作。你能詳細說明一下嗎? – R21

回答

5

是的,有在夫特一個equivalant Filter功能:

過濾

過濾方法需要一個函數(includeElement)其中,陣列中的給定的一個 元件,返回一個布爾指示元素 應該包含在結果數組中。例如,移除所有 從數字陣列的奇數可以做這樣的:

let numbers = [ 10000, 10303, 30913, 50000, 100000, 101039, 1000000 ] 
let evenNumbers = numbers.filter { $0 % 2 == 0 } 
// [ 10000, 50000, 100000, 1000000 ] 

進一步瞭解Map, Filter and Reduce in Swift

+0

'$ 0'是做什麼的?這是否充當每個單獨列表元素的佔位符? – R21

+1

是的,它代表每個元素 –

+2

請參閱[關閉文檔](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID94),標題爲「速記參數名稱」一節。 – TigerhawkT3

相關問題