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

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • Photoshop Training Channel

    Photoshop Tr

    13 Temmuz 2012
  • warningthepeople

    warningthepe

    21 EYLÜL 2011