Cách sử dụng tính năng hiểu danh sách trong Python

Cách sử dụng tính năng hiểu danh sách trong Python

Sử dụng kịp thời khả năng hiểu danh sách trong Python có thể giúp bạn dễ dàng thực hiện các thao tác với danh sách lặp đi lặp lại. Ngoài việc là một dòng duy nhất, nó dễ đọc hơn và thực thi hiệu quả hơn.





Tuy nhiên, bạn có thể gặp khó khăn nếu không biết cách sử dụng nó. Nó thậm chí có thể gây khó chịu hơn nếu bạn không biết áp dụng nó vào đâu trong mã của mình. Ở đây, chúng tôi sẽ chỉ cho bạn cách sử dụng khả năng hiểu danh sách trong Python với một số ví dụ thực tế.





Hiểu danh sách trong Python là gì và nó hoạt động như thế nào?

Tạo danh sách các mục bằng Python rất dễ dàng. Tuy nhiên, nhiệm vụ có thể trở nên hơi tẻ nhạt khi bạn cần tạo danh sách các giá trị hoặc mục từ các phép toán hoặc chuỗi. Đó là khi sử dụng khả năng hiểu danh sách có thể hữu ích.





Một lợi thế của việc sử dụng khả năng hiểu danh sách là bạn có thể thực hiện một số thao tác trong một danh sách duy nhất.

tại sao trò chơi của tôi cứ gặp sự cố

Ngược lại, nó tạo ra các mục mới và gắn chúng vào một danh sách trống mà nó tự động khai báo. Vì vậy, thay vì tạo một danh sách trống theo cách thủ công và thêm vào nó bằng một vòng lặp, khả năng hiểu danh sách của Python cho phép bạn thực hiện điều này tự động mà bạn không cần bận tâm về cách danh sách mới đi qua.



Thuật ngữ 'hiểu danh sách' xuất phát từ thực tế là tất cả các hoạt động đều nằm trong danh sách Python được gán cho một biến được đặt tên. Như chúng tôi đã nêu trước đó, nó cho phép bạn thực hiện các hoạt động cụ thể trong một dòng mã. Sau đó, nó nối kết quả đầu ra vào một danh sách mới.

Cuối cùng, bạn cũng có thể sử dụng kết quả của việc hiểu danh sách cho các mục đích khác. Đó là bởi vì nó xếp chồng các biểu thức trong các biến riêng biệt. Vì vậy, bạn có thể tham khảo chúng sau này.





Ví dụ, bạn có thể cạo một trang web với BeautifulSoup . Giả sử bạn có ý định lấy tên của tất cả các mặt hàng và giá của chúng từ trang web.

Sau đó, bạn quyết định đưa dữ liệu đã được cạo vào tệp CSV hoặc tệp Excel. Cách thực hành lý tưởng là đánh dấu tên của tất cả các mặt hàng và giá của chúng rồi đặt cả hai vào các cột riêng biệt. Tuy nhiên, sử dụng khả năng hiểu danh sách, trong trường hợp đó, đảm bảo rằng bạn có dữ liệu cóp nhặt trong các biến chuyên dụng. Sau đó, bạn có thể chuyển đổi các biến như vậy thành Python DataFrame sau này.





Hãy xem ví dụ dưới đây:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Khi bạn nhận được các biến được lặp, sau đó bạn có thể đặt chúng vào các cột riêng biệt trong DataFrame bằng cách sử dụng Python's Pandas.

Cách tạo và sử dụng hiểu danh sách bằng Python

Các loop là một trình lặp cần thiết trong việc hiểu danh sách. Nói chung, một danh sách dễ hiểu trong Python có định dạng sau:

ComprehensionVariable = [expression for items in list]

In ấn Sự hiểu biết xuất kết quả của đoạn mã trên dưới dạng danh sách.

Tuy nhiên, hãy cẩn thận để không nhầm lẫn giữa phần hiểu danh sách với phần mở vòng.

Ví dụ, hãy sử dụng một vòng lặp mở cho để có được danh sách tất cả các bội số của ba từ 1 đến 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Để so sánh cả hai, hãy làm điều tương tự bằng cách sử dụng khả năng hiểu danh sách:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Bạn cũng có thể sử dụng cách hiểu danh sách với các câu lệnh điều kiện. Mã ví dụ bên dưới in tất cả các số lẻ từ 1 đến 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Bây giờ, chúng ta cũng hãy viết lại đoạn mã ở trên bằng cách sử dụng vòng:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Có liên quan: Cách nối danh sách bằng Python

Khả năng hiểu danh sách cũng chấp nhận các câu lệnh if lồng nhau:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Nó cũng có một vòng:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Bạn cũng có thể có một đơn giản được lồng vào nhau lặp lại trong việc hiểu danh sách:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Bạn cũng có thể thao tác các chuỗi với khả năng hiểu danh sách Python. Chúng ta hãy xem một cách đối chiếu từ bên dưới:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Khả năng hiểu danh sách cũng có thể chấp nhận một hàm thực hiện một hoạt động cụ thể. Hãy chèn một hàm số nhân nhận các số chẵn trong danh sách để xem cách này hoạt động như thế nào:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Bạn vẫn có thể viết đoạn mã trên trong một hàm duy nhất mà không cần sử dụng tính năng hiểu. Nhưng khả năng hiểu danh sách rất hữu ích khi bạn cần thực hiện một số lần lặp lại và đặt mỗi lần trong số chúng vào các biến riêng biệt.

Ví dụ: bạn có thể thực hiện một thao tác khác trên n và có một biến dành riêng cho nó. Hãy sửa đổi cách hiểu ở trên để tạo ra các số chẵn từ các số lẻ:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Từ điển và Đặt hiểu

Ngoài khả năng hiểu danh sách, Python cũng cung cấp từ điển và chức năng đọc hiểu tập hợp.

Hãy xem ví dụ về cách hiểu từ điển bên dưới để xem nó hoạt động như thế nào:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Đoạn mã trên lặp lại danh sách các số từ 1 đến 9 và biến chúng thành các khóa. Sau đó, nó yêu cầu Python nhân mỗi khóa với hai. Cuối cùng, nó trình bày kết quả của hoạt động đó dưới dạng các giá trị tương ứng cho mỗi khóa trong mảng kết quả.

Có liên quan: Cách Mảng và Danh sách hoạt động trong Python

Đọc hiểu tập hợp hơi giống với hiểu danh sách. Đây là một ví dụ về cách hiểu tập hợp:

làm thế nào để biết tôi có bo mạch chủ nào
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Tuy nhiên, không giống như khả năng hiểu danh sách, khả năng hiểu theo tập hợp loại bỏ các bản sao:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Bạn có thể thử mã ở trên bằng cách sử dụng khả năng hiểu danh sách để xem chúng khác nhau như thế nào.

Bạn có thể sử dụng tính năng hiểu danh sách mọi lúc không?

Chúng tôi đã xem xét các ví dụ khác nhau về khả năng hiểu danh sách và nơi bạn có thể sử dụng chúng. Tuy nhiên, giống như bất kỳ phương pháp Python nào khác, trường hợp sử dụng của khả năng hiểu danh sách phụ thuộc vào vấn đề cụ thể mà bạn muốn giải quyết. Vì vậy, bạn chỉ nên sử dụng nó nếu nó lý tưởng cho vấn đề cụ thể mà bạn muốn giải quyết.

Một trong những mục đích của việc hiểu danh sách là đơn giản hóa mã của bạn và làm cho nó dễ đọc hơn. Vì vậy, hãy đảm bảo rằng bạn tránh được sự phức tạp khi xử lý nó. Ví dụ, một bản hiểu Python dài có thể trở nên phức tạp để đọc. Điều đó làm mất đi mục đích của nó.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách sử dụng hiểu danh sách Python (Và khi nào không sử dụng chúng)

Dưới đây là mọi thứ bạn cần biết về việc sử dụng tính năng tuyệt vời này của Python sẽ giúp tăng năng suất và khả năng đọc mã của bạn chỉ sau một đêm.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Python
Giới thiệu về tác giả Idisou Omisola(Đã xuất bản 94 bài báo)

Idowu đam mê mọi thứ về công nghệ và năng suất thông minh. Trong thời gian rảnh rỗi, anh ấy chơi với mã hóa và chuyển sang bàn cờ khi anh ấy chán, nhưng anh ấy cũng thích thoát khỏi thói quen thỉnh thoảng. Niềm đam mê của anh ấy trong việc cho mọi người thấy cách thức xung quanh công nghệ hiện đại đã thúc đẩy anh ấy viết nhiều hơn.

Xem thêm từ Idowu Omisola

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký