SORU
14 AĞUSTOS 2009, Cuma


Ama alfasayısal sıyırma her şeyi Python ile bir dizeden karakterleri

Bir dize tüm sayısal olmayan karakterler, Python kullanarak şerit için en iyi yolu nedir?

Çözümleri PHP variant of this question sunulan muhtemelen bazı küçük ayarlamalar ile çalışacak, ama çok görünmüyor 'pythonic' bana.

Kayıt için, virgül ve diğer noktalama), ama aynı zamanda tırnak, parantez, vb dönemleri şerit istemiyorum.

CEVAP
14 AĞUSTOS 2009, Cuma


Ben sadece meraktan bazı işlevler uğradı

$ python -m timeit -s \
     "import string" \
     "''.join(ch for ch in string.printable if ch.isalnum())" 
10000 loops, best of 3: 57.6 usec per loop

$ python -m timeit -s \
    "import string" \
    "filter(str.isalnum, string.printable)"                 
10000 loops, best of 3: 37.9 usec per loop

$ python -m timeit -s \
    "import re, string" \
    "re.sub('[\W_]', '', string.printable)"
10000 loops, best of 3: 27.5 usec per loop

$ python -m timeit -s \
    "import re, string" \
    "re.sub('[\W_] ', '', string.printable)"                
100000 loops, best of 3: 15 usec per loop

$ python -m timeit -s \
    "import re, string; pattern = re.compile('[\W_] ')" \
    "pattern.sub('', string.printable)" 
100000 loops, best of 3: 11.2 usec per loop

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011