例えば、私は文字列を取得します:
str = "please answer my question"
ファイルに書きたいのですが。
しかし、文字列をファイルに書き込む前に、文字列のサイズを知る必要があります。文字列のサイズを計算するために使用できる関数は何ですか?
文字列の長さについて話している場合は、 len()
を使用できます。
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
文字列のサイズをバイト数で指定する必要がある場合は、 sys.getsizeof()
が必要です。
>>> import sys
>>> sys.getsizeof(s)
58
また、文字列変数str
を呼び出さないでください。組み込みの str()
関数を影にします。
User225312の答えは正しいです。
A。str
オブジェクトの文字数を数えるには、len()
関数を使います。
>>> print(len('please anwser my question'))
25
B。str
オブジェクトを格納するために割り当てられたメモリサイズをバイト数で取得するには、sys.getsizeof()
関数を使用します。
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2 *では複雑になっています。
A。Python 2のlen()
関数は、ストアに割り当てられたバイト数を返しますエンコードされた文字str
オブジェクト。
時にはそれは文字数に等しいでしょう:
>>> print(len('abc'))
3
しかし時々、それはしません:
>>> print(len('йцы')) #String contains cyrillic symbols
6
これはstr
が内部的に 可変長エンコード を使用できるからです。そのため、str
の文字数を数えるには、str
オブジェクトがどのエンコーディングを使用しているかを知っておく必要があります。それから unicode
オブジェクトに変換して文字数を取得することができます。
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B。sys.getsizeof()
関数はPython 3と同じことをします - ストアに割り当てられたバイト数を返しますstringオブジェクト全体 =
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
P.S 32ビットWindows上で Anaconda Python の下でコードサンプルをテストしました。
>>> s = 'abcd'
>>> len(s)
4
Str.len()を使って列の要素の長さを数えることもできます。
data['name of column'].str.len()
最も--- Pythonic方法はlen()
を使うことです。エスケープシーケンスの '\'文字はカウントされず、正しく使用されないと危険になる可能性があることに注意してください。
>>> 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