Hàm len() trong Python
Hàm len trong Python cực kỳ hữu ích trong lập trình. Dưới đây là những điều bạn cần biết về hàm len trong Python.
Cú pháp hàm len() trong Python
len(chuoi)
Các tham số của hàm len()
Hàm len() có 1 tham số:
- chuoi: chuỗi ký tự (có thể là string, bytes, tuple, list, range, dictionary, set hoặc frozen set) mà bạn muốn tính toán độ dài.
Giá trị trả về từ len()
- Hàm len trả về số lượng ký tự của chuỗi đầu vào. Nếu không truyền tham số hoặc tham số không hợp lệ thì chương trình phát sinh ngoại lệ TypeError.
Ví dụ 1: Hàm len() hoạt động thế nào với tham số là tuple, list và range?
testList = []
print(testList, 'co do dai la', len(testList))
testList = [1, 2, 3]
print(testList, 'co do dai la', len(testList))
testTuple = (1, 2, 3)
print(testTuple, 'co do dai la', len(testTuple))
testRange = range(1, 10)
print('Do dai cua', testRange, 'la', len(testRange))
Chạy chương trình, kết quả trả về là
[] co do dai la 0
[1, 2, 3] co do dai la 3
(1, 2, 3) co do dai la 3
Do dai cua range(1, 10) la 9
Ví dụ 2: Hàm len() hoạt động thế nào với tham số là string và byte?
testString = ''
print('Do dai cua', testString, 'la', len(testString))
testString = 'Quantrimang'
print('Do dai cua', testString, 'la', len(testString))
# byte object
testByte = b'Quantrimang'
print('Do dai cua', testByte, 'la', len(testByte))
testList = [1, 2, 3]
# converting to bytes object
testByte = bytes(testList)
print('Do dai cua', testByte, 'la', len(testByte))
Chạy chương trình ta được kết quả trả về là:
Do dai cua la 0
Do dai cua Quantrimang la 11
Do dai cua b'Quantrimang' la 11
Do dai cua b'\x01\x02\x03' la 3
Ví dụ 3: Hàm len() hoạt động thế nào với tham số là dictionary và set?
testSet = {1, 2, 3}
print(testSet, 'co do dai la', len(testSet))
# Empty Set
testSet = set()
print(testSet, 'co do dai la', len(testSet))
testDict = {1: 'mot', 2: 'hai'}
print(testDict, 'co do dai la', len(testDict))
testDict = {}
print(testDict, 'co do dai la', len(testDict))
testSet = {1, 2}
# frozenSet
frozenTestSet = frozenset(testSet)
print(frozenTestSet, 'co do dai la', len(frozenTestSet))
Ta được kết quả trả về là:
{1, 2, 3} co do dai la 3
set() co do dai la 0
{1: 'mot', 2: 'hai'} co do dai la 2
{} co do dai la 0
frozenset({1, 2}) co do dai la 2
Khi thực thi, len() gọi phương thức __len__ của đối tượng nên bạn cũng có thể hình dung về hàm len() là:
def len(s):
return s.__len__()
Vì vậy, bạn có thể gán độ dài tùy chỉnh cho đối tượng (nếu cần).
Ví dụ 4: Hàm len() hoạt động thế nào với các đối tượng tùy chỉnh?
class Session:
def __init__(self, number = 0):
self.number = number
def __len__(self):
return self.number
# độ dài mặc định là 0
# viết bởi Quantrimang.com
s1 = Session()
print(len(s1))
# gán chiều dài tùy chỉnh
s2 = Session(6)
print(len(s2))
Chạy chương trình, kết quả trả về nhận được là:
0
6
Khám phá len() với các kiểu dữ liệu khác
Bạn không thể dùng tất cả các kiểu dữ liệu có sẵn làm đối số cho len(). Đối với các kiểu dữ liệu không chứa nhiều hơn một mục bên trong, khái niệm chiều dài không liên quan. Đây là trường hợp liên quan tới số và các kiểu Boolean:
>>> len(5)
Traceback (most recent call last):
...
TypeError: object of type 'int' has no len()
>>> len(5.5)
Traceback (most recent call last):
...
TypeError: object of type 'float' has no len()
>>> len(True)
Traceback (most recent call last):
...
TypeError: object of type 'bool' has no len()
>>> len(5 + 2j)
Traceback (most recent call last):
...
TypeError: object of type 'complex' has no len()
Các kiểu integer
, float
, Boolean
và complex
là những ví dụ về kiểu dữ liệu có sẵn mà bạn không thể dùng với len()
. Hàm này sinh ra TypeError khi đối số là một đối tượng của kiểu dữ liệu không có độ dài.

Bạn nên đọc
