Python 3:
La respuesta del usuario225312 es correcta:
A. Para contar el número de caracteres en el str
objeto, puede usar la len()
función:
>>> print(len('please anwser my question'))
25
B. Para obtener el tamaño de la memoria en bytes asignados al str
objeto de almacenamiento , puede usar la sys.getsizeof()
función
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2:
Se complica para Python 2.
A. La len()
función en Python 2 devuelve el recuento de bytes asignados para almacenar caracteres codificados en un str
objeto.
A veces será igual al recuento de caracteres:
>>> print(len('abc'))
3
Pero a veces, no lo hará:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
Eso es porque str
puede usar codificación de longitud variable internamente. Por lo tanto, para contar caracteres str
, debe saber qué codificación str
está utilizando su objeto. Luego puedes convertirlo en unicode
objeto y obtener el recuento de caracteres:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. La sys.getsizeof()
función hace lo mismo que en Python 3: devuelve el recuento de bytes asignados para almacenar el objeto de cadena completo
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32