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

  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011
  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • Turkish Airlines

    Turkish Airl

    11 AĞUSTOS 2006