Question

Par exemple, je reçois une chaîne de caractères:

str = "please answer my question"

Je veux écrire dans un fichier.

Mais j'ai besoin de savoir la taille de la chaîne avant d'écrire la chaîne de caractères dans le fichier.Quelle fonction dois-je utiliser pour calculer la taille de la chaîne?

Était-ce utile?

La solution

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, ne pas appeler votre variable de chaîne str.Il les ombres intégré str() fonction.

Autres conseils

Python 3:

user225312 réponse est correcte:

A. Pour compter le nombre de caractères dans str objet, vous pouvez utiliser len() fonction:

>>> print(len('please anwser my question'))
25

B. Pour obtenir la taille de la mémoire, en octets, allouée pour stocker str objet, vous pouvez utiliser sys.getsizeof() la fonction

>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50

Python 2:

Cela devient compliqué pour Python 2.

A. L' len() fonction en Python 2 renvoie le nombre d'octets alloués à stocker caractères codés dans un str objet.

Parfois, il sera égal au nombre de caractères:

>>> print(len('abc'))
3

Mais parfois, il ne sera pas:

>>> print(len('йцы'))  # String contains Cyrillic symbols
6

C'est parce que str pouvez utiliser variable-length encoding à l'interne.Donc, pour compter les caractères dans str vous devez savoir qui l'encodage de votre str l'objet est l'aide.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. L' sys.getsizeof() la fonction fait la même chose que dans Python 3 - elle renvoie le nombre d'octets alloués à stocker l'ensemble de la chaîne de l'objet

>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
>>> s = 'abcd'
>>> len(s)
4

Vous pouvez également utiliser str.len () pour compter la longueur de l'élément dans la colonne

data['name of column'].str.len() 

La plupart des Pythonic façon est d'utiliser l' 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top