Dizeleri normal ifadeye göre bir listeye filtrelemek istiyorum.Normal İfadeler: Listede arayın
[x for x in list if r.match(x)]
'dan daha iyi bir şey var mı?
Dizeleri normal ifadeye göre bir listeye filtrelemek istiyorum.Normal İfadeler: Listede arayın
[x for x in list if r.match(x)]
'dan daha iyi bir şey var mı?
filter(r.match, list)
Tam Örnek:
import re
mylist = ["dog", "cat", "wildcat", "thundercat", "cow", "hooo"]
r = re.compile(".*cat")
newlist = filter(r.match, mylist)
print str(newlist)
Baskılar:
['cat', 'wildcat', 'thundercat']
Merhabalar, Yukarıdaki kodu çalıştırdığımda, '' ı yanlış yapıyorum? –
Joshua
Python belgelerine göre (python 2.7.12): https://docs.python.org/2/library/functions.html#filter filtresi, bir nesne olmayan bir liste döndürür. Ayrıca şu kodu da kontrol edebilirsiniz: https://repl.it/X3G/5786 (sadece isabet) – Mercury
Teşekkür ederiz. Mac üzerinde Python 3.5.2 kullanıyorum. Bağlantını denedim. Tabii ki işe yaramazsa da, neden bu msg'yi aldığımı bilmiyorum. Hatta 'filtre 'bir liste döndürdüğü için bile' str 'kaldırdı, boşuna ... – Joshua
Aslında, liste genellikle vb filtre, azaltmak, lambda, –
@Ivo gibi fonksiyonel yapıları üzerinde tercih edilir Genellikle tercih edilir çünkü genellikle daha açık ve genellikle daha özlüdürler. Bununla birlikte, bu durumda, 'filtre' versiyonu tamamen açıktır ve çok daha az gürültüye sahiptir. – sepp2k