Comment obtenir la taille d'une chaîne en Python?
Par exemple, je reçois une chaîne:
str = "please answer my question"
Je veux l'écrire dans un fichier.
Mais j'ai besoin de connaître la taille de la chaîne avant d'écrire la chaîne dans le fichier. Quelle fonction dois-je utiliser pour calculer la taille de la chaîne?
5 réponses
Si l'on parle de la longueur de la chaîne, vous pouvez utiliser len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
Si vous avez besoin de la taille de la chaîne en octets, vous devez sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
Aussi, n'appelez pas votre chaîne str
. Il ombre le haut-str()
Fonction.
Python 3.*:
La réponse de l'utilisateur225312 est correcte:
A. pour compter le nombre de caractères dans l'objet str
, Vous pouvez utiliser la fonction len()
:
>>> print(len('please anwser my question'))
25
B. pour obtenir la taille de la mémoire en octets alloués au magasin str
objet, vous pouvez utiliser sys.getsizeof()
Fonction
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Python 2.*:
Ça devient compliqué pour Python 2.*.
A. Le len()
fonction en Python 2 renvoie le nombre d'octets alloués pour stocker codé caractères dans un objet str
.
, Parfois, il sera égal au nombre de caractères:
>>> print(len('abc'))
3
Mais parfois, ce ne sera pas le cas:
>>> print(len('йцы')) #String contains cyrillic symbols
6
C'est parce que str
peut utiliser encodage de longueur variable en interne. Donc, pour compter les caractères dans str
, Vous devez savoir quel encodage utilise votre objet str
. Ensuite, vous pouvez le convertir en unicode
objet et obtenir le nombre de caractères:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. Le sys.getsizeof()
la fonction fait la même chose que dans Python 3 - il renvoie le nombre d'octets alloués pour stocker l'objet string entier
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
P.S. j'ai testé mes échantillons de code sous Anaconda Python sur Windows 32 bits
Le moyen le plus pythonique est d'utiliser le len()
. Gardez à l'esprit que le caractère '\' dans les séquences d'échappement n'est pas compté et peut être dangereux s'il n'est pas utilisé correctement.
>>> 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
Vous pouvez également utiliser str.len () pour compter la longueur de l'élément dans la colonne
data['name of column'].str.len()