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

Thế giới ngôn ngữ lập trình vô cùng đa dạng và phong phú với nhiều kiểu khác nhau. Bạn không nhất thiết phải học hết tất cả mà có thể chỉ tập trung vào những ngôn ngữ thật sự hứng thú. Ngoài HTML, CSS, JavaScript, Python cũng là một trong số ngôn ngữ lập trình phổ biến nhất hiện nay.

Học Python không khó. Về cơ bản, nó cũng bao gồm nhiều hàm hay các lệnh như những ngôn ngữ khác. Hãy bắt đầu từ những hàm Python cơ bản nhất trên Quantrimang.com. Ở bài viết này, chúng ta sẽ cùng nhau tìm hiểu về lệnh len trong Python.

Hàm Python len() được dùng để lấy độ dài của chuỗi dữ liệu. Một chuỗi là bộ sưu tập các ký tự và độ dài của chuỗi là số ký tự (giá trị Unicode) bên trong nó.

Hàm len() quyết định số lượng ký tự trong chuỗi bao gồm dấu câu, khoảng cách và tất cả kiểu ký tự đặc biệt. Số các thành phần được lưu trong đối tượng này chưa bao giờ được tính, vì thế, phương pháp này giúp cung cấp số các phần tử.

Ví dụ chuỗi “Tutorials Point” có 15 ký tự bao gồm cả khoảng cách.

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, Booleancomplex 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ài trước: Hàm int() trong Python

Bài tiếp: Hàm getattr() trong Python

Chủ Nhật, 15/10/2023 10:28
3,511 👨 53.116
0 Bình luận
Sắp xếp theo
    ❖ Python