SORU
18 EYLÜL 2010, CUMARTESİ


Nasıl bir dize tüm beyaz boşluk şerit

Python nasıl bir dize tüm alanlarda şerit muyum? Örneğin, strip my spaces gibi bir dize stripmyspaces, dönüşmek istiyorum ama yapamam strip() ile bunu başarmak için bir şey gibi görünüyor

>>> 'strip my spaces'.strip()
'strip my spaces'

CEVAP
18 EYLÜL 2010, CUMARTESİ


Str yararlanarak.Eyl parametre ile çatlak davranış:

>>> s = " \t foo \n bar "
>>> "".join(s.split())
'foobar'

Sadece boşluk yerine boşluk kaldırmak istiyorsanız:

>>> s.replace(" ", "")
'\tfoo\nbar'

Erken optimizasyonu

Verimliliği hedefi—yazma birincil açık kod olmasa bile bazı ilk zamanlamaları burada

$ python -m timeit '"".join(" \t foo \n bar ".split())'
1000000 loops, best of 3: 1.38 usec per loop
$ python -m timeit -s 'import re' 're.sub(r"\s ", "", " \t foo \n bar ")'
100000 loops, best of 3: 15.6 usec per loop

Normal ifade hayal ediyorum kadar yavaş değil yani önbelleğe alınan not. Bu derleme, önceden bazı yardımcı olur, ama sadece eğer bu çağrı eğer uygulamada sorun olurbirçoktimes:

$ python -m timeit -s 'import re; e = re.compile(r"\s ")' 'e.sub("", " \t foo \n bar ")'
100000 loops, best of 3: 7.76 usec per loop

Tekrar olsa bile.alt 11.3 x yavaş, sorunları mutlaka başka bir yerde olduğunuzu unutmayın. Çoğu program bu 3 seçenek arasında herhangi bir fark olmaz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AverageBroTV

    AverageBroTV

    20 Mart 2013
  • GoldgenieOfficial

    GoldgenieOff

    23 Temmuz 2009
  • Perihelion

    Perihelion

    23 NİSAN 2008