Python Hàm len(): Cách tìm độ dài của chuỗi

⚡ Tóm tắt thông minh

Python len() là một hàm tích hợp trả về số lượng phần tử trong một đối tượng, chẳng hạn như các ký tự trong một chuỗi hoặc các phần tử trong một danh sách, bộ dữ liệu, từ điển hoặc tập hợp.

  • 🔢 Cú pháp: Hàm len(object) nhận một đối số duy nhất và trả về một số nguyên, tổng số phần tử mà đối tượng đó chứa.
  • 🔠 Dây: Đối với chuỗi ký tự, hàm len() đếm từng ký tự, bao gồm cả khoảng trắng, chữ số và dấu chấm câu.
  • 📦 Bộ sưu tập: Phương thức len() đo kích thước của danh sách, bộ dữ liệu, từ điển, tập hợp và đối tượng phạm vi theo cùng một cách.
  • ⚙️ Hiệu suất: len() chạy trong thời gian O(1) không đổi vì Python Lưu trữ độ dài của mỗi đối tượng dưới dạng một thuộc tính.
  • 🚫 LoạiError: Việc gọi hàm len() trên một số nguyên hoặc None sẽ gây ra lỗi TypeError, vì các kiểu dữ liệu này không có độ dài.
  • 🤖 Hỗ trợ AI: Các trợ lý lập trình AI tạo ra các kiểm tra len(), và các quy trình học máy sử dụng len() để thêm phần đệm và nhóm các chuỗi.

Python hàm len()

Là gì Python Hàm len()?

len () hàm là một hàm tích hợp sẵn trong PythonBạn có thể sử dụng `len()` để lấy độ dài của một chuỗi, mảng, danh sách, bộ dữ liệu, từ điển và các đối tượng khác. Vì số lượng phần tử được lưu trữ trên đối tượng thay vì được tính toán lại mỗi lần, `len()` giúp bạn kiểm tra kích thước nhanh chóng và tối ưu hóa hiệu suất chương trình.

Cú pháp của Python hàm len()

Python Hàm len() sử dụng cú pháp sau:

len(value)

Thông số Kỹ thuật

giá trị: Đối tượng được chỉ định — chẳng hạn như chuỗi ký tự, danh sách, bộ dữ liệu, từ điển hoặc tập hợp — mà bạn muốn đo độ dài.

Trở lại giá trị

Hàm `len()` trả về một số nguyên, tức là số ký tự trong một chuỗi hoặc số phần tử trong một mảng, danh sách hoặc tập hợp. Ý nghĩa chính xác của giá trị trả về phụ thuộc vào loại đối tượng được truyền vào:

  • Dây: Hàm len() trả về số lượng ký tự trong chuỗi, bao gồm dấu câu, khoảng trắng và tất cả các loại ký tự đặc biệt.
  • Trống: Chuỗi rỗng hoặc tập hợp rỗng trả về 0, vì nó không chứa phần tử nào.
  • Bộ sưu tập: Hàm tích hợp len() trả về số lượng phần tử được lưu trữ trong một tập hợp.
  • LoạiError: Hàm `len()` phụ thuộc vào kiểu dữ liệu của đối tượng được truyền vào. Việc truyền vào một giá trị không có độ dài, chẳng hạn như số nguyên, sẽ gây ra lỗi `TypeError`.
  • Từ điển: Đối với từ điển, mỗi cặp khóa-giá trị được tính là một đơn vị, vì vậy hàm len() trả về số lượng khóa.

Ví dụ về Python hàm len()

Các ví dụ sau đây minh họa cách sử dụng hàm len() để tìm độ dài của các chuỗi khác nhau. Python Các đối tượng, bao gồm chuỗi, danh sách, bộ dữ liệu, từ điển và mảng.

Ví dụ 1: Cách tìm độ dài của một chuỗi

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

Đầu ra:

The length of the string  is : 35

Ví dụ 2: Cách tìm độ dài của một danh sách

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

Đầu ra:

The length of the list is 4

Ví dụ 3: Cách tìm độ dài của một bộ dữ liệu (tuple)

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

Đầu ra:

The length of the tuple is 3

Ví dụ 4: Cách tìm độ dài của từ điển

# to find the length of the Dictionary

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}

print("The length of the Dictionary is", len(Dict))

Đầu ra:

The length of the Dictionary is 4

Ví dụ 5: Cách tìm độ dài của một mảng

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

Đầu ra:

The length of the Array is 4

Cách tìm độ dài của chuỗi mà không cần dùng hàm len() Python

Hàm `len()` là cách nhanh nhất và dễ đọc nhất để đo độ dài chuỗi, nhưng bạn cũng có thể đếm ký tự thủ công. Đây là một bài tập phỏng vấn lập trình phổ biến, và mỗi phương pháp chỉ đơn giản là lặp qua chuỗi trong khi tăng bộ đếm.

Phương pháp phổ biến nhất sử dụng vòng lặp for:

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

Đầu ra:

The length is 6

Một phương án ngắn gọn hơn sử dụng hàm sum() với biểu thức tạo, cộng thêm 1 cho mỗi ký tự trong chuỗi:

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

Đầu ra:

The length is 6

Các cách khác để đếm ký tự mà không cần dùng hàm len() bao gồm:

  • Một vòng lặp while cắt chuỗi cho đến khi chuỗi rỗng, tăng bộ đếm sau mỗi lần cắt.
  • Hàm enumerate(), mà tracks là chỉ số của mỗi ký tự khi nó lặp lại.
  • Một hàm đệ quy trả về 1 cộng với độ dài của chuỗi con còn lại.

Các phương pháp thủ công này chậm hơn so với hàm len() tích hợp sẵn, vì vậy hãy dành chúng cho việc học tập hoặc luyện tập phỏng vấn. Trong lập trình hàng ngày, len() vẫn là lựa chọn nhanh nhất và rõ ràng nhất.

Làm thế nào Python Hàm `len()` hoạt động bên trong như thế nào?

Hiểu cách hoạt động của hàm `len()` sẽ giải thích tại sao nó lại nhanh như vậy. Khi bạn gọi hàm `len()` trên một đối tượng, Python Nó không quét từng phần tử một. Thay vào đó, nó gọi phương thức đặc biệt __len__() của đối tượng, có nghĩa là biểu thức len(x) tương đương với x.__len__().

Các kiểu dữ liệu tích hợp sẵn như chuỗi, danh sách, bộ dữ liệu, từ điển và tập hợp lưu trữ kích thước của chính chúng dưới dạng thuộc tính. Mỗi khi bạn thêm hoặc xóa một phần tử, Python Cập nhật giá trị đã lưu trữ này. Khi hàm len() được gọi, nó chỉ đơn giản là đọc giá trị đã lưu trữ trước đó và trả về giá trị đó.

Vì độ dài đã được biết trước, hàm len() chạy trong thời gian hằng số, được viết là O(1). Nó mất cùng một lượng thời gian cho dù đối tượng chứa năm mục hay năm triệu mục. Bạn cũng có thể thêm hỗ trợ len() vào các lớp của riêng mình bằng cách định nghĩa một phương thức __len__() trả về một số nguyên:

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

Đầu ra:

11

Thiết kế này giải thích tại sao hàm len() hoạt động nhất quán trên mọi kiểu dữ liệu tích hợp sẵn, cũng như bất kỳ đối tượng tùy chỉnh nào triển khai phương thức __len__().

" Học nhiều hơn về Python Phương thức chuỗi

Câu Hỏi Thường Gặp

Đúng vậy. Hàm len() đếm mọi ký tự trong một chuỗi, bao gồm cả khoảng trắng, dấu tab, chữ số và dấu chấm câu. Ví dụ: len(“Guru 99!”) trả về 8, vì khoảng trắng và dấu chấm than đều được tính là một ký tự.

Hàm len() trả về 0 cho chuỗi rỗng, vì nó không chứa ký tự nào. Hàm len() không phải là hàm đánh số từ 0; nó đếm các phần tử bắt đầu từ 1, vì vậy len(“a”) trả về 1 và len(“”) trả về 0.

Số nguyên không lưu trữ nhiều mục nên chúng không có độ dài. Gọi len(123) sẽ gây ra lỗi “TypeError: object of type 'int' has no len()”. Hãy chuyển đổi số trước bằng len(str(123)) khi bạn muốn đếm số chữ số của nó.

Đúng vậy. Đối với từ điển, hàm len() trả về số lượng cặp khóa-giá trị, tính mỗi cặp một lần. Đối với tập hợp, hàm len() trả về số lượng phần tử duy nhất, vì tập hợp tự động loại bỏ các giá trị trùng lặp.

Hàm `len()` trả về số điểm mã Unicode trong một chuỗi, vì vậy hầu hết các chữ cái có dấu và ký hiệu được tính là một điểm mã. Tuy nhiên, một số biểu tượng cảm xúc và ký tự kết hợp sử dụng nhiều điểm mã, do đó `len()` có thể trả về nhiều hơn một điểm mã cho chúng.

Truyền tham số `len` làm khóa cho hàm `max()`: `max(words, key=len)` trả về chuỗi dài nhất trong danh sách. Tương tự, `min(words, key=len)` trả về chuỗi ngắn nhất. Điều này giúp tránh việc phải viết vòng lặp thủ công để so sánh độ dài của từng chuỗi.

Các quy trình học máy sử dụng hàm `len()` liên tục — để kiểm tra kích thước tập dữ liệu, xác nhận rằng các đặc trưng và nhãn khớp nhau, và đo độ dài chuỗi. Các mô hình thường thêm hoặc cắt bớt văn bản để có cùng độ dài `len()` sao cho các lô dữ liệu có cùng kích thước.

Đúng vậy. GitHub Copilot tự động hoàn thành các kiểm tra độ dài (len()) và vòng lặp đếm từ một đoạn mô tả ngắn gọn về mục tiêu của bạn. Các trợ lý AI có khả năng tự động hoàn thành còn tiến xa hơn, viết logic kiểm tra độ dài, thêm các điều khoản bảo vệ chống lại lỗi TypeError và chạy các bài kiểm tra thay cho bạn.

Tóm tắt bài viết này với: