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ş:
Nasıl bir dize sayısal olmayan karakte...
Nasıl otomatik olarak tüm beyaz boşluk...
Nasıl sınırlayıcı olarak herhangi bir ...
Nasıl bir dize JavaScript kullanarak b...
Nasıl ASCII olmayan karakterler bir di...