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

  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • HowcastTechGadgets

    HowcastTechG

    22 EYLÜL 2010
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006