Örneğin, bir dize alıyorum:
str = "please answer my question"
Bir dosyaya yazmak istiyorum.
Ama ben dizeyi dosyaya yazmadan önce dizenin boyutunu bilmek gerekir. Dizenin boyutunu hesaplamak için hangi işlevi kullanabilirim?
Örneğin, bir dize alıyorum:
str = "please answer my question"
Bir dosyaya yazmak istiyorum.
Ama ben dizeyi dosyaya yazmadan önce dizenin boyutunu bilmek gerekir. Dizenin boyutunu hesaplamak için hangi işlevi kullanabilirim?
Yanıtlar:
Dizenin uzunluğu hakkında konuşuyorsanız, şunları kullanabilirsiniz len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
Dizenin bayt cinsinden boyutuna ihtiyacınız varsa, aşağıdakilere ihtiyacınız vardır sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
Ayrıca, dize değişkeninizi çağırma str
. Yerleşik str()
işlevi gölgelendirir .
sys.getsizeof
Python nesnesinin bellekte kapladığı bayt sayısını döndürür. Bu hiçbir durumda bir dosyaya yazmak için yararlı olmayacaktır.
len(s.encode('utf8'))
ya da dosyaya yazarken diğer kodlama kullanılacak ne olacak. Ayrıca, sonlandırma null değerini de istiyorlarsa, bunun için 1 eklemeleri gerekir.
user225312 kullanıcısının yanıtı doğru:
C.str
Nesnedeki karakter sayısını saymak için len()
işlevi kullanabilirsiniz :
>>> print(len('please anwser my question'))
25
B.str
Nesneyi saklamak için ayrılan baytlarda bellek boyutu elde etmek için sys.getsizeof()
işlevi kullanabilirsiniz
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2 için karmaşıklaşıyor.
A.len()
2 döner dükkanına ayrılan bayt saymak Python fonksiyon karakterleri kodlanmış bir de str
nesne.
Bazen karakter sayısına eşit olur:
>>> print(len('abc'))
3
Ama bazen, olmayacak:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
Çünkü dahili olarak değişken uzunluklu kodlamastr
kullanabilir . Yani, içindeki karakterleri saymak için nesnenizin hangi kodlamayı kullandığını bilmelisiniz . Ardından nesneyi dönüştürebilir ve karakter sayısı elde edebilirsiniz:str
str
unicode
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B.sys.getsizeof()
işlevi Python 3 ile aynı şeyi yapar - bu depolamak için ayrılan bayt sayısını döndürür bütün dize nesne
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
>>> s = 'abcd'
>>> len(s)
4
Sütundaki öğenin uzunluğunu saymak için str.len () öğesini de kullanabilirsiniz.
data['name of column'].str.len()
En Pythonic yolu kullanmaktır len()
. Kaçış dizisindeki '\' karakterinin sayılmadığını ve doğru kullanılmadığında tehlikeli olabileceğini unutmayın.
>>> len('foo')
3
>>> len('\foo')
3
>>> len('\xoo')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape