ตัวอย่างเช่นฉันได้รับสตริง:
str = "please answer my question"
ฉันต้องการเขียนลงไฟล์
แต่ฉันต้องรู้ขนาดของสตริงก่อนที่จะเขียนสตริงลงในไฟล์ ฉันสามารถใช้ฟังก์ชันใดในการคำนวณขนาดของสตริงได้
ตัวอย่างเช่นฉันได้รับสตริง:
str = "please answer my question"
ฉันต้องการเขียนลงไฟล์
แต่ฉันต้องรู้ขนาดของสตริงก่อนที่จะเขียนสตริงลงในไฟล์ ฉันสามารถใช้ฟังก์ชันใดในการคำนวณขนาดของสตริงได้
คำตอบ:
หากคุณกำลังพูดถึงความยาวของสตริงคุณสามารถใช้len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
หากคุณต้องการขนาดของสตริงเป็นไบต์คุณต้องsys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
str
นอกจากนี้ยังจะไม่เรียกตัวแปรสตริงของคุณ มันเงาstr()
ฟังก์ชั่นในตัว
sys.getsizeof
ส่งคืนจำนวนไบต์ที่วัตถุ Python ใช้ในหน่วยความจำ นั่นจะไม่เป็นประโยชน์สำหรับการเขียนไฟล์ในทุกสถานการณ์
len(s.encode('utf8'))
หรือสิ่งที่การเข้ารหัสอื่น ๆ จะถูกใช้เมื่อเขียนไปยังไฟล์ นอกจากนี้หากพวกเขาต้องการโมฆะสิ้นสุดพวกเขาจะต้องเพิ่ม 1 สำหรับสิ่งนั้น
คำตอบของ user225312ถูกต้อง:
A.หากต้องการนับจำนวนตัวอักษรในstr
วัตถุคุณสามารถใช้len()
ฟังก์ชั่น:
>>> print(len('please anwser my question'))
25
B.ในการรับขนาดหน่วยความจำในหน่วยไบต์เพื่อจัดเก็บstr
วัตถุคุณสามารถใช้sys.getsizeof()
ฟังก์ชั่น
>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50
มันซับซ้อนสำหรับ Python 2
A.len()
ฟังก์ชั่นในหลาม 2 ผลตอบแทนนับไบต์จัดสรรให้กับร้านตัวอักษรเข้ารหัสในstr
วัตถุ
บางครั้งมันจะเท่ากับจำนวนตัวอักษร:
>>> print(len('abc'))
3
แต่บางครั้งมันจะไม่:
>>> print(len('йцы')) # String contains Cyrillic symbols
6
นั่นเป็นเพราะstr
สามารถใช้การเข้ารหัสความยาวผันแปรได้ ดังนั้นในการนับตัวละครในstr
คุณควรรู้ว่าการเข้ารหัสstr
วัตถุของคุณกำลังใช้งานอยู่ จากนั้นคุณสามารถแปลงเป็นunicode
วัตถุและรับจำนวนอักขระ:
>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols
3
บีsys.getsizeof()
ฟังก์ชั่นจะเป็นสิ่งเดียวกับในหลาม 3 - มันคืนนับไบต์จัดสรรในการจัดเก็บวัตถุสตริงทั้ง
>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32
>>> s = 'abcd'
>>> len(s)
4
คุณอาจใช้ str.len () เพื่อนับความยาวขององค์ประกอบในคอลัมน์
data['name of column'].str.len()
ส่วนใหญ่Pythoniclen()
วิธีคือการใช้ โปรดทราบว่าอักขระ '\' ในลำดับหลีกไม่นับรวมและอาจเป็นอันตรายได้หากไม่ได้ใช้อย่างถูกต้อง
>>> 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