HomeLập trìnhPythonCách sử dụng...

Cách sử dụng các hàm lặp tích hợp trong Python


Khi bạn đang lặp qua một chuỗi trong Python như danh sách, bộ dữ liệu, chuỗi hoặc từ điển, bạn có bao giờ cảm thấy mã của mình lộn xộn hoặc bạn muốn xóa một số biến khỏi nó không?

May mắn thay, Python có một số hữu ích inbuilt chức năng làm cho mã của bạn ngắn gọn hơn và dễ đọc hơn.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các loại inbuilt chức năng với các ví dụ đơn giản để hiểu cách chúng hoạt động.

Cách lặp qua một chuỗi với hàm enumerate() trong Python

con trăn enumerate() hàm lặp qua một chuỗi (danh sách, bộ dữ liệu, chuỗi hoặc từ điển) trong khi theo dõi giá trị chỉ mục trong một biến riêng biệt.

Hãy xem cú pháp:

enumerate(iterable, start)

Nó bao gồm hai đối số:

  • lặp đi lặp lại – Một đối tượng có thể lặp lại hoặc một chuỗi, đó là một đối tượng có thể được lặp lại.
  • bắt đầu – Giá trị chỉ mục hoặc giá trị bắt đầu của số đếm. Theo mặc định, giá trị bắt đầu từ 0.

Đây là kết quả bạn nhận được:

Output
[(0, item_1), (1, item_1), (2, item_2), . . ., (n, item_n)]

Như bạn có thể thấy, chúng ta nhận được các phần tử trong iterable cùng với các chỉ số tương ứng của chúng.

Hãy lấy một ví dụ không có chỉ mục:

colour = ["Black", "Purple", "Brown", "Yellow", "Blue"]
list(enumerate(colour))
Output:
[(0, 'Black'), (1, 'Purple'), (2, 'Brown'), (3, 'Yellow'), (4, 'Blue')]

Như bạn có thể thấy, chỉ mục bắt đầu từ 0. Chúng tôi chưa sử dụng đối số thứ hai. Theo mặc định, giá trị của chỉ mục bắt đầu từ 0.

Hãy lấy một ví dụ khác với một chỉ mục:

colour = ["Black", "Purple", "Brown", "Yellow", "Blue"]
list(enumerate(colour, 10))
Output:
[(10, 'Black'), (11, 'Purple'), (12, 'Brown'), (13, 'Yellow'), (14, 'Blue')]

Vì vậy, ở đây chỉ mục của chúng tôi bắt đầu từ 10 khi chúng tôi đặt đối số bắt đầu thành 10, bắt đầu đếm từ 10.

Bạn phải chỉ định một danh sách hoặc bộ dữ liệu để nhận đầu ra, nếu không nó sẽ chỉ cho bạn kết quả này:

colour = ["Black", "Purple", "Brown", "Yellow", "Blue"]
enumerate(colour)
Output:
<enumerate object at 0x7f6a97ad7c40>

Hãy lấy một ví dụ với từ điển:

Đọc thêm  Toán tử Modulo của Python - Biểu tượng % có nghĩa là gì trong Python? (Đã giải quyết)

colour = {"Black": 0, 
          "Purple": 2, 
          "Brown": 4, 
          "Yellow": 9, 
          "Blue": 1}
list(enumerate(colour))
Output:
[(0, 'Black'), (1, 'Purple'), (2, 'Brown'), (3, 'Yellow'), (4, 'Blue')]

Khi chúng tôi lặp lại một từ điển, chúng tôi chỉ nhận được các khóa chứ không phải các giá trị của từ điển.

Để lặp qua một từ điển và lấy các giá trị, Python có hai hàm dựng sẵn:

  • items() – Hàm này giúp chúng ta lấy các cặp key-value từ từ điển.
  • values() – Chức năng này giúp chúng ta chỉ lấy giá trị từ từ điển mà không cần khóa.

Hãy xem ví dụ về các chức năng:

colour = {"Black": 0, 
          "Purple": 2, 
          "Brown": 4, 
          "Yellow": 9, 
          "Blue": 1}
list(enumerate(colour.items()))
Output:
[(0, ('Black', 0)), (1, ('Purple', 2)), (2, ('Brown', 4)), (3, ('Yellow', 9)), (4, ('Blue', 1))]

Bạn có thể sử dụng nó với một vòng lặp for như thế này:

colour = {"Black": 0, 
          "Purple": 2, 
          "Brown": 4, 
          "Yellow": 9, 
          "Blue": 1}
for ind, (keys, value) in enumerate(colour.items()):
	print(ind, keys, value)
Output:
0 Black 0
1 Purple 2
2 Brown 4
3 Yellow 9
4 Blue 1

Trong ví dụ này, chúng tôi nhận được các cặp khóa-giá trị. Bây giờ chúng ta sẽ sử dụng một chức năng khác,

colour = {"Black": 0, 
          "Purple": 2, 
          "Brown": 4, 
          "Yellow": 9, 
          "Blue": 1}
list(enumerate(colour.values()))
Output:
[(0, 0), (1, 2), (2, 4), (3, 9), (4, 1)]

Với vòng lặp for:

colour = {"Black": 0, 
          "Purple": 2, 
          "Brown": 4, 
          "Yellow": 9, 
          "Blue": 1}
for ind, value in enumerate(colour.values()):
	print(ind, value)
Output:
0 0
1 2
2 4
3 9
4 1

Ở đây, bạn chỉ nhận được các giá trị, không phải các khóa trong khi lặp qua từ điển.

Cách lặp qua một chuỗi với hàm zip() trong Python

Các zip() hàm nhận nhiều hơn một lần lặp có cùng giá trị chỉ mục và kết hợp chúng rồi trả về một trình lặp. Trình vòng lặp có thể là một bộ, một danh sách hoặc một từ điển.

Hãy xem cú pháp:

zip(*iterables)

hoặc

zip(iterator1, iterator2, ... so on)

Đối số của hàm zip():

  • Iterables có thể là danh sách, bộ dữ liệu, chuỗi, bộ hoặc từ điển.

Hãy lấy một ví dụ:

color = ["Blue", "Orange", "Brown", "Red"]
code = [20, 10, 56, 84]
list(zip(color, code))
Output:
[('Blue', 20), ('Orange', 10), ('Brown', 56), ('Red', 84)]

Ở đây, hai danh sách được kết hợp hoặc nén lại với nhau và chúng ta có một trình vòng lặp.

Nếu độ dài của các lần lặp khác nhau thì trình vòng lặp sẽ ngừng tạo đầu ra khi hết lần lặp ngắn nhất.

Hãy lấy một ví dụ:

color = ["Blue", "Orange", "Brown"]
code = [20, 10, 56, 84]
list(zip(color, code))
Output:
[('Blue', 20), ('Orange', 10), ('Brown', 56)]

Đọc thêm  Bản đồ Python () – Chức năng liệt kê với các ví dụ

Ở đây, độ dài ngắn nhất là màu và chúng tôi nhận được đầu ra tối đa 3 màu và mã. Vì vậy, mã thứ 4 bị từ chối.

Trong Trăn 3.10có một tham số mới strict trong đó kiểm tra độ dài của các phần tử. Nó sẽ báo lỗi nếu độ dài của các phần tử không khớp nhau. Hãy lấy một ví dụ:

color = ("Blue", "Orange", "Brown", "Purple")
code = (20, 10, 56)
for col, cod in zip(color, code, strict=True):
    print(col, cod)
Output:
Blue 20
Orange 10
Brown 56
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    for col, cod in zip(color, code, strict=True):
ValueError: zip() argument 2 is shorter than argument 1

Bạn không cần phải thực hiện hai trình vòng lặp, bạn có thể thực hiện bất kỳ số lượng trình lặp nào. Hãy lấy một ví dụ với ba trình vòng lặp:

Abbreviation = ['Bl', 'Or', 'Br', 'Gn']
Color = ['Blue', 'Orange', 'Brown', 'Green']
Code = [20, 10, 56, 88]
for ab, col, cod in zip(Abbreviation, Color, Code):
	print(ab, col, cod)
Output:
Bl Blue 20
Or Orange 10
Br Brown 56
Gn Green 88

Bạn cũng có thể tạo từ điển bằng cách sử dụng dict chức năng. Hãy lấy một ví dụ:

Color = ['Blue', 'Orange', 'Brown', 'Green']
Code = [20, 10, 56, 88]
dict(zip(Color, Code))
Output:
{'Blue': 20, 'Orange': 10, 'Brown': 56, 'Green': 88}

Cách lặp qua một chuỗi với hàm sorted() trong Python

Các sorted() hàm trả về các phần tử theo thứ tự được sắp xếp từ một đối tượng có thể lặp lại.

Hãy xem cú pháp:

sorted(iterable, key=key, reverse=reverse)

Nó bao gồm ba đối số:

  • lặp đi lặp lại – một dãy có thể là một danh sách, một bộ, một chuỗi, v.v.
  • Chìa khóa – Là tùy chọn. Đây là một chức năng mà bạn có thể sử dụng để tùy chỉnh thứ tự sắp xếp. Tùy chọn mặc định là Không.
  • đảo ngược – cũng là tùy chọn. Nó là một Boolean. Ở đây, giá trị mặc định là Sai cái nào ở trong tăng dần trật tự. Thật sẽ là giảm dần trật tự.

Hãy lấy một ví dụ:

Color = ['Blue', 'Orange', 'Brown', 'Green']
sorted(Color)
Output:
['Blue', 'Brown', 'Green', 'Orange']

Theo mặc định, đầu ra của bạn sẽ là một danh sách và sẽ theo thứ tự tăng dần. Nếu là chuỗi thì sẽ sắp xếp theo thứ tự bảng chữ cái còn nếu là số thì sắp xếp theo số.

Đầu ra ở trên hiển thị một danh sách được sắp xếp theo thứ tự tăng dần. Nếu bạn muốn nó theo thứ tự giảm dần, bạn có thể sử dụng reverse tranh luận. Hãy lấy một ví dụ:

Đọc thêm  Trăn là gì? Cách thức hoạt động của trình thông dịch và cách viết "Xin chào thế giới" bằng Python

Color = ('Blue', 'Orange', 'Brown', 'Green')
sorted(Color, reverse=True)
Output:
['Orange', 'Green', 'Brown', 'Blue']

Giá trị ban đầu không thay đổi khi sorted() chức năng không thay đổi các giá trị ban đầu – nó sẽ chỉ tạo đầu ra. Đầu ra sẽ là một danh sách có thứ tự.

Các key chức năng có thể được tích hợp sẵn hoặc do người dùng xác định mà bạn có thể sử dụng để thao tác thứ tự đầu ra.

Trước tiên hãy lấy một ví dụ với chức năng tích hợp sẵn:

Word = ('TO', 'is', 'apple', 'PEAR', 'LIKE')
sorted(Word, key=str.upper)
Output:
['apple', 'is', 'LIKE', 'PEAR', 'TO']

Theo mặc định, đầu ra sẽ theo thứ tự tăng dần. Bạn phải đảo ngược lập luận như thế này:

Word = ('TO', 'is', 'apple', 'PEAR', 'LIKE')
sorted(Word, key=str.upper, reverse=True)
Output:
['TO', 'PEAR', 'LIKE', 'is', 'apple']

Số lượng đối số phải là một trong khi sử dụng đối số chính. Hãy lấy một ví dụ với hàm do người dùng xác định:

numb = (22, 10, 5, 34, 29)
sorted(numb, key=lambda x: x%5)
Output:
[10, 5, 22, 34, 29]

Tôi đã sử dụng hàm lambda để đơn giản, nhưng bạn có thể sử dụng phương pháp truyền thống để định nghĩa hàm nếu muốn.

Cách lặp qua một chuỗi với hàm Reverse() trong Python

Các reversed hàm trả về các phần tử theo thứ tự ngược lại từ một đối tượng có thể lặp lại.

Hãy xem cú pháp:

reversed(iterable)

Đối số của hàm đảo ngược:

  • lặp đi lặp lại Nó là một trình tự giống như một danh sách, bộ dữ liệu, bộ, v.v.

Hãy lấy một ví dụ:

numb = (22, 10, 5, 34, 29)
list(reversed(numb))
Output:
[29, 34, 5, 10, 22]

Bạn phải chỉ định một danh sách hoặc một bộ nếu không nó sẽ chỉ cung cấp cho bạn một địa chỉ như ví dụ bên dưới:

numb = (22, 10, 5, 34, 29)
reversed(numb)
Output:
<reversed object at 0x000001C1E7D9E110>

Phần kết luận

Các hàm tích hợp giúp bạn viết các hàm Python của mình một cách rõ ràng và ngắn gọn. Chúng sẽ giúp bạn thực hiện chức năng của mình mà không bị lộn xộn.

Trong hướng dẫn này, bạn đã học về các hàm dựng sẵn khác nhau trong Python. Bạn đã xem nhiều ví dụ khác nhau và bây giờ bạn có thể thực hành theo trình tự của riêng mình. Hy vọng bạn thấy hướng dẫn này hữu ích.

theo tôi trên Twitter. Mã hóa vui vẻ!





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status