Misalnya, saya mendapatkan string:
str = "please answer my question"
Saya ingin menulisnya ke file.
Tapi saya perlu tahu ukuran string sebelum menulis string ke file. Fungsi apa yang bisa saya gunakan untuk menghitung ukuran string?
Misalnya, saya mendapatkan string:
str = "please answer my question"
Saya ingin menulisnya ke file.
Tapi saya perlu tahu ukuran string sebelum menulis string ke file. Fungsi apa yang bisa saya gunakan untuk menghitung ukuran string?
Jawaban:
Jika Anda berbicara tentang panjang string, Anda dapat menggunakan len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
Jika Anda membutuhkan ukuran string dalam byte, Anda perlu sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
Juga, jangan panggil variabel string Anda str
. Ini membayangi str()
fungsi bawaan.
sys.getsizeof
mengembalikan jumlah byte objek Python menempati dalam memori. Itu tidak akan berguna untuk menulis ke file dalam keadaan apa pun.
len(s.encode('utf8'))
atau apa pun pengkodean lain yang akan digunakan saat menulis ke file. Juga, jika mereka juga ingin mengakhiri nol maka mereka harus menambahkan 1 untuk itu.
Jawaban user225312 benar:
A. Untuk menghitung jumlah karakter dalam str
objek, Anda dapat menggunakan len()
fungsi:
>>> print(len('please anwser my question'))
25
B. Untuk mendapatkan ukuran memori dalam byte yang dialokasikan untuk menyimpan str
objek, Anda dapat menggunakan sys.getsizeof()
fungsi
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
Menjadi rumit untuk Python 2.
A. The len()
fungsi dalam Python 2 hasil menghitung byte yang dialokasikan untuk menyimpan dikodekan karakter dalam str
objek.
Terkadang itu sama dengan jumlah karakter:
>>> print(len('abc'))
3
Tapi terkadang, itu tidak akan:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
Itu karena str
dapat menggunakan pengodean panjang variabel secara internal. Jadi, untuk menghitung karakter di str
Anda harus tahu di mana pengkodean str
objek Anda gunakan. Kemudian Anda dapat mengonversinya menjadi unicode
objek dan mendapatkan jumlah karakter:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
B. The sys.getsizeof()
fungsi melakukan hal yang sama seperti di Python 3 - ia mengembalikan jumlah byte yang dialokasikan untuk menyimpan seluruh objek string
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
>>> s = 'abcd'
>>> len(s)
4
Anda juga dapat menggunakan str.len () untuk menghitung panjang elemen di kolom
data['name of column'].str.len()
Cara paling Pythonic adalah dengan menggunakan len()
. Perlu diingat bahwa karakter '\' dalam urutan pelarian tidak dihitung dan dapat berbahaya jika tidak digunakan dengan benar.
>>> 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