Ö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.getsizeofPython 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 strnesne.
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:strstrunicode
>>> 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