Hàm len() trong Python
Len trong Python là một hàm thông dụng. Dưới đây là những điều bạn cần biết về cách dùng hàm len trong Python.
Khi lập trình, bạn có thể gặp phải tình huống cần xác định độ dài của một đối tượng lặp cụ thể. Ví dụ, giả sử bạn muốn tìm ra điểm trung bình của học sinh trong một lớp. Đối với điều này, chúng ta cũng sẽ cần số lượng học sinh đang học trong lớp đó. Tình huống tương tự có thể được triển khai trong chương trình Python. Python len() là một hàm tích hợp giúp giải quyết vấn đề này mà không gặp bất kỳ rắc rối nào. Nó được sử dụng để tính toán độ dài của bất kỳ đối tượng lặp nào được truyền dưới dạng tham số cho hàm len().
Hiểu đơn giản:
- Python len() là một hàm tích hợp trả về số phần tử (độ dài) trong một trình lặp/đối tượng được truyền vào hàm.
- Hàm Python len() được sử dụng để trả về một giá trị số biểu thị độ dài của danh sách, bộ, chuỗi, mảng, từ điển, v.v. đã cho.
Dưới đây là thông tin chi tiế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.
Dùng hàm len() với thư viện bên thứ ba
Bạn cũng có thể dùng len() của Python với một số kiểu dữ liệu tùy biến từ thư viện bên thứ ba. Dưới đây là một ví dụ phổ biến.
DataFrame của Pandas
Kiểu DataFrame trong thư viện pandas là kiểu dữ liệu khác, được sử dụng rộng rãi trong nhiều ứng dụng.
Trước khi có thể dùng pandas, bạn cần cài đặt nó bằng cách sử dụng lệnh sau trong console:
$ python -m pip install pandas
Bạn đã cài đặt gói pandas, và giờ bạn có thể tạo một DataFrame từ một từ điển:
>>> import pandas as pd
>>> marks = {
"Robert": [60, 75, 90],
"Mary": [78, 55, 87],
"Kate": [47, 96, 85],
"John": [68, 88, 69],
}
>>> marks_df = pd.DataFrame(marks, index=["Physics", "Math", "English"])
>>> marks_df
Robert Mary Kate John
Physics 60 78 47 68
Math 75 55 96 88
English 90 87 85 69
>>> len(marks_df)
3
>>> marks_df.shape
(3, 4)
Khóa của từ điển này là các chuỗi đại diện cho tên của học sinh trong một lớp. Giá trị của từng khóa là danh sách chứa điểm cho 3 môn học. Khi tạo DataFrame từ dictionary, bạn xác định index bằng một danh sách chứa tên môn học.
DataFrame có 3 hàng và 4 cột. Hàm len() trả về số hàng trong DataFrame. Kiểu DataFrame cũng có một thuộc tính .shape
, mà bạn có thể dùng để hiện thứ nguyên đầu tiên của DataFrame đại diện cho số hàng.
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
Điểm ưu tiên, điểm khuyến khích, khu vực ưu tiên khi xét tuyển năm 2022
Hôm qua -
Dynamic System Updates là gì?
Hôm qua -
PING là gì? Test PING như thế nào?
Hôm qua -
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5 -
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua -
Các cách làm, tùy chỉnh trong bài sẽ giúp tăng tốc Windows 10 của bạn "nhanh như gió"
Hôm qua 6 -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua -
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua