Hàm len() trong Python

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 3Do 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 objecttestByte = b'Quantrimang'print('Do dai cua', testByte, 'la', len(testByte))testList = [1, 2, 3]# converting to bytes objecttestByte = 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 0Do dai cua Quantrimang la 11Do dai cua b'Quantrimang' la 11Do 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 SettestSet = 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}# frozenSetfrozenTestSet = 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 3set() co do dai la 0{1: 'mot', 2: 'hai'} co do dai la 2{} co do dai la 0frozenset({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.coms1 = Session()print(len(s1))# gán chiều dài tùy chỉnhs2 = Session(6)print(len(s2))

Chạy chương trình, kết quả trả về nhận được là:

06

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 integerfloatBoolean 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.

Nguồn tin: Quantrimang.com: