2017-11-01 13 views
0
a = ["az", "1", "afasf7af", "8", "dsgsdgsg"] 
[k for k in a if k.isalpha()] 
> ['az', 'dsgsdgsg'] 

isalphaを述語として渡すのはもうちょっとわかりません(明確な意図)。しかし、そのような自由な機能はないようです。これは乱雑なラムダを導入することなく達成できますか?フィルターのみの文字列

filter(isalpha, a) 

答えて

1

あなたはstr.isalpha結合していないを使用することができます。

filter(str.isalpha, a) 

未結合の方法は、まだ最初の引数と同じ型のオブジェクトを取ることができますので、これは動作します。これは、繰り返しstr.isalpha(string_value)呼び出します

>>> str.isalpha('az') 
True 
>>> str.isalpha('1') 
False 

デモ:

>>> a = ["az", "1", "afasf7af", "8", "dsgsdgsg"] 
>>> list(filter(str.isalpha, a)) 
['az', 'dsgsdgsg'] 
関連する問題