Domanda

Ad esempio, ottengo una stringa:

str = "please answer my question"

Voglio scriverlo in un file.

Ma ho bisogno di conoscere le dimensioni della stringa prima di scrivere la stringa nel file. Quale funzione posso usare per calcolare la dimensione della stringa?

È stato utile?

Soluzione

Se stai parlando della lunghezza della stringa, puoi usare len():

>>> s = 'please answer my question'
>>> len(s)  # number of characters in s
25

Se hai bisogno della dimensione della stringa in byte, è necessario sys.getsizeof():

>>> import sys
>>> sys.getsizeof(s)
58

Inoltre, non chiamare la tua variabile di stringa str. Ombreggia l'incarico str() funzione.

Altri suggerimenti

Python 3:

Risposta di User225312 è corretta:

UN. Per contare il numero di caratteri in str oggetto, puoi usare len() funzione:

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

B. Per ottenere la dimensione della memoria nei byte assegnati per archiviare str oggetto, puoi usare sys.getsizeof() funzione

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

Python 2:

Diventa complicato per Python 2.

UN. Il len() La funzione in Python 2 restituisce il conteggio dei byte assegnati al negozio caratteri codificati in un str oggetto.

A volte sarà uguale al conteggio dei caratteri:

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

Ma a volte non lo farà:

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

È perché str poter usare codifica a lunghezza variabile internamente. Quindi, per contare i personaggi in str Dovresti sapere quale codifica il tuo str L'oggetto sta usando. Quindi puoi convertirlo in unicode Oggetto e ottenere il conteggio dei personaggi:

>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols 
3

B. Il sys.getsizeof() La funzione fa la stessa cosa di Python 3 - restituisce il conteggio dei byte assegnati per archiviare l'intero oggetto stringa

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

È inoltre possibile utilizzare str.len () per contare la lunghezza dell'elemento nella colonna

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

Più Divinatorio Il modo è usare il len(). Tieni presente che il personaggio '' nelle sequenze di fuga non è conteggiato e può essere pericoloso se non usato correttamente.

>>> 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top