Tin tức và phân tích của tất cả các thiết bị di động

Danh sách hiểu trong python – với các ví dụ

Trong Python, danh sách tổ hợp giúp bạn tạo danh sách mới từ các phép lặp hiện có như danh sách, chuỗi và bộ dữ liệu.

Cú pháp ngắn gọn của chúng cho phép bạn tạo danh sách mới chỉ trong một dòng mã. Và hướng dẫn này sẽ dạy bạn cách bạn có thể làm điều đó.

Trong vài phút tới, bạn sẽ học:

  • Cách tạo danh sách mới bằng vòng lặp for,
  • Cú pháp sử dụng combolist trong python i
  • Cách sửa đổi danh sách tổ hợp nếu có điều kiện.

Ngoài ra, bạn sẽ viết một số ví dụ để giúp bạn hiểu rõ hơn về ý nghĩa của danh sách.

Hãy đi sâu vào.🌊

Làm cách nào để tạo danh sách python có vòng lặp?

Giả sử bạn có một danh sách các số nums. Và bạn muốn tạo một danh sách khác chứa lập phương của tất cả các số trong số. Đây là cách bạn thực hiện với vòng lặp for trong Python:

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

Trong đoạn mã trên, chúng tôi có các bước sau:

  • Khởi tạo một danh sách trống num_cubes.
  • Cuộn qua danh sách các số.
  • Truy cập bất kỳ số num nào và tính lập phương của nó bằng toán tử lũy thừa: num**3.
  • Cuối cùng, thêm giá trị khối vào danh sách num_cubes

Lưu ý: Trong Python, toán tử lũy thừa ** được sử dụng với cú pháp: num**pow – num được nâng lên lũy thừa của pow.

Tuy nhiên, bạn có thể làm điều này dễ dàng hơn bằng cách sử dụng khả năng hiểu danh sách của Python. Hãy chuyển sang học cú pháp của nó.

Cú pháp danh sách kết hợp Python

Cú pháp chung để hiểu danh sách được hiển thị bên dưới.

<new_list> = [<expression> for <item> in <iterable>]

Hãy phân tích cú pháp trên.

  • Trong Python, các danh sách được phân tách bằng một cặp dấu ngoặc vuông []-vì vậy bạn cần bao gồm một câu lệnh hiểu danh sách trong chuỗi [].
  • w có nghĩa là bạn trải qua quá trình lặp lại. Mỗi đối tượng Python mà bạn có thể lặp qua và truy cập các phần tử riêng lẻ—chẳng hạn như danh sách, bộ dữ liệu và chuỗi—là một đối tượng có thể lặp lại.
  • là đầu ra bạn muốn tính toán cho từng mục trong .

Và nghe có vẻ đơn giản phải không?

Về cơ bản, bạn muốn làm điều gì đó cho tất cả các mục trong danh sách (hoặc bất kỳ mục nào có thể lặp lại) để có danh sách mới.

Sử dụng điều này, chúng ta có thể đơn giản hóa cú pháp như trong hình bên dưới.

Liệt kê cú pháp hiểu trong python (ảnh của tác giả)

Bây giờ bạn đã học cú pháp, đã đến lúc bắt đầu viết mã. Bạn có thể sử dụng IDE Python trực tuyến của newsblog.pl để làm theo các ví dụ này. Bạn cũng có thể chạy chúng trên máy tính cục bộ của mình.

Liệt kê các ví dụ hiểu trong Python

Trong phần trước, bạn đã tạo một danh sách num_cubes mới từ nums. Hãy bắt đầu bằng cách viết lại điều này bằng cách sử dụng cách hiểu danh sách.

Sử dụng hiểu danh sách với các số

Bây giờ hãy sử dụng cú pháp đơn giản hóa như sau:

  • : Ở đây bạn phải mở rộng từng số. Vì vậy, thay thế bằng num**3.
  • : Biến vòng lặp là num – các số riêng lẻ trong danh sách.
  • : Danh sách hiện có là nums.
  • VÀ [num**3 for num in nums] là biểu hiện cuối cùng.

Tóm lại, chúng ta có đoạn mã sau:

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

Xin chúc mừng, bạn đã mã hóa khả năng hiểu danh sách đầu tiên của mình.🎉

Tiếp tục, hãy làm việc với các chuỗi Python.

Sử dụng danh sách tổ hợp với chuỗi

Giả sử bạn có một danh sách các tác giả – bạn có thể viết lại danh sách bên dưới với các tác giả yêu thích của mình.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

Lưu ý rằng trong danh sách trên, tên của tác giả là chữ thường. Bây giờ chúng tôi muốn định dạng chúng trong trường hợp và lưu trữ chúng trong một danh sách mới có tên là author_list.

Lưu ý: Trong Python, phương thức string title() chấp nhận một chuỗi làm đối số và trả về một bản sao của chuỗi được định dạng trong tiêu đề. Điều này có nghĩa là chữ cái đầu tiên của mỗi từ được viết hoa: Tên Họ

Đây là tất cả những gì bạn cần làm:

  • đi qua danh sách các tác giả và cho từng tác giả trong danh sách,
  • gọi author.title() để nhận bản sao phân biệt chữ hoa chữ thường của chuỗi.

Và mã python cho điều này được hiển thị bên dưới:

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

Trong kết quả ở trên, hãy xem cách định dạng tên của tất cả các tác giả cho tiêu đề – đó là ý của chúng tôi.

Sử dụng khả năng hiểu danh sách với nhiều danh sách

Cho đến giờ, bạn đã học cách sử dụng khả năng hiểu danh sách để tạo danh sách mới từ một danh sách hiện có. Bây giờ hãy tìm hiểu cách tạo một danh sách mới từ nhiều danh sách.

Ví dụ, hãy xem xét vấn đề sau: Bạn có hai danh sách l_arr và b_arr chứa chiều dài và chiều rộng 4 hình chữ nhật.

Và bạn cần tạo một vùng danh sách mới chứa vùng của các 4 hình chữ nhật. Hãy nhớ rằng, diện tích = chiều dài * chiều rộng.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

Để tính diện tích, bạn sẽ cần các phần tử từ cả hai danh sách (l_arr và b_arr). Bạn có thể làm điều này với hàm zip() của Python.

Lưu ý: Trong Python, hàm zip() lấy một hoặc nhiều lần lặp làm đối số với cú pháp zip(*iterables). Sau đó, nó trả về một trình lặp tuple trong đó tuple i chứa phần tử i từ mỗi lần lặp.

Hình ảnh dưới đây mô tả nó một cách chi tiết. Bạn có 4 các giá trị trong l_arr và b_arr, vì vậy phạm vi chỉ mục là từ 0 xuống 3. Như bạn có thể thấy, một tuple 0 chứa l_arr[0] và b_arr[0]ngắn 1 chứa l_arr[1] và b_arr[1]và như thế.

Hàm zip() của Python (ảnh của tác giả)

Do đó, bạn có thể đi qua zip(l_arr,b_arr) như hình bên dưới:

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

Trong phần tiếp theo, bạn sẽ học cách sử dụng câu điều kiện bên trong danh sách kết hợp.

Hiểu danh sách Python với cú pháp điều kiện

Hãy bắt đầu bằng cách xây dựng cú pháp trước để hiểu danh sách.

Đây là cú pháp:

<new_list> = [<expression> for <item> in <iterable> if <condition>]

Thay vì tính toán cho tất cả các mục, bạn chỉ muốn tính toán cho những mục đáp ứng -where, condition:=True đã chỉ định. Và điều này dẫn đến một cú pháp đơn giản hóa như sau:

Hiểu danh sách trong Python với Cú pháp điều kiện (Ảnh của tác giả)

▶ Sau đó, hãy chuyển sang các ví dụ mã.

Hiểu danh sách trong Python với các ví dụ về điều kiện

#1. Bạn nhận được chuỗi “I’m learn python in 2022”. Bạn muốn có một danh sách tất cả các chữ số trong chuỗi này. vậy bạn sẽ làm sao?

Trong Python, .isdigit() hoạt động trên một ký tự và trả về True nếu đó là một chữ số (0-9); nếu không nó trả về Sai.

Đoạn mã dưới đây cho thấy cách thu thập danh sách tất cả các chữ số trong chuỗi str1.

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

Trong đoạn mã trên:

  • bạn sẽ lặp chuỗi str1,
  • truy cập từng ký tự để kiểm tra xem đó có phải là một chữ số hay không bằng phương thức isdigit() và
  • chỉ thêm một ký tự vào các chữ số mới của danh sách nếu đó là một chữ số.

Hãy lấy một ví dụ khác.

#2. Bạn có một danh sách các loại trái cây. Và bạn muốn tạo một danh sách started_at_b chứa tất cả các loại trái cây trong danh sách các loại trái cây bắt đầu bằng b. Bạn có thể sử dụng phương thức startedwith() để viết một điều kiện.

.startswith(‘char’) trả về True nếu nó bắt đầu bằng ‘char’; nếu không nó trả về Sai.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

Trong kết quả ở trên, chúng tôi nhận được “quả mọng” và “quả chuối”, là hai loại trái cây bắt đầu bằng chữ “b” trong danh sách trái cây, như chúng tôi mong đợi.

Và điều đó kết thúc cuộc thảo luận của chúng tôi về hiểu danh sách.

Đăng kí

Tôi hy vọng hướng dẫn này đã giúp bạn hiểu danh sách hợp chất python.

Hãy tóm tắt:

  • Bạn có thể dùng [<do this> for <all-items> in <this-list>] để tạo một danh sách mới bằng cách sử dụng khả năng hiểu danh sách.
  • Ngoài ra, bạn có thể sử dụng cú pháp [<do this> for <all-items> in <this-list> if <condition-is-True>] với một if có điều kiện.

Ngoài ra, bạn cũng đã mã hóa một số ví dụ. Trong bước tiếp theo, bạn có thể thử viết lại một số vòng lặp python hiện có để tạo danh sách bằng cách sử dụng khả năng hiểu danh sách. Chúc mừng mã hóa! Cho đến phần hướng dẫn tiếp theo.😄

Giờ đây, bạn có thể xem cách chuyển đổi danh sách thành từ điển hoặc tìm hiểu cách xử lý tệp trong Python.