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 de l'écrire dans le fichier. Quelle fonction puis-je utiliser pour calculer la taille de la chaîne?
Si vous parlez 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 avez besoin de sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
De même, n'appelez pas votre variable chaîne str
. Il ombrage la fonction str()
intégrée.
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ée au magasin de l'objet str
, vous pouvez utiliser la fonction sys.getsizeof()
.
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Cela devient compliqué pour Python 2. *.
A. La fonction len()
dans Python 2 renvoie le nombre d'octets alloués au stockage caractères codés dans un objet str
.
Parfois, il sera égal au nombre de caractères:
>>> print(len('abc'))
3
Mais parfois, ça ne va pas:
>>> print(len('йцы')) #String contains cyrillic symbols
6
En effet, str
peut utiliser codage à longueur variable en interne. Ainsi, pour compter les caractères dans str
, vous devez savoir quel codage votre objet str
utilise. 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. La fonction sys.getsizeof()
fait la même chose que dans Python 3 - renvoie le nombre d'octets alloués à la sauvegarde. l'objet chaîne complet
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
P.S. J'ai testé mes exemples de code sous Anaconda Python sous Windows 32 bits
>>> s = 'abcd'
>>> len(s)
4
Vous pouvez également utiliser str.len () pour compter la longueur d’un élément dans la colonne.
data['name of column'].str.len()
Le plus Pythonic moyen est d’utiliser la 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