Python

Python Standard Library – itertools

Xin chào, trong bài viết này chúng ta sẽ tìm hiểu về một số function có trong bộ thư viện chuẩn itertools của Python.


itertools.product()

Được sử dụng để ghép lần lượt các phần tử của các iterables với nhau.

Function:

iterator = itertools.product(*iterables, repeat=1)

Trong đó:

  • iterables – các tập hợp dữ liệu input;
  • repeat – được sử dụng để ghép các iterables với chính nó n lần, mặc định là 1.

Example:

>>> from itertools import product
>>> print(list(product("ABC","xy")))
[('A', 'x'), ('A', 'y'), ('B', 'x'),('B', 'y'), ('C', 'x'),('C', 'y')]

itertools.permutations()

Được dùng để thực hiện phép chỉnh hợp từ một tập hợp.

Function:

iterator = itertools.premutations(iterable, r=None)

Trong đó:

  • iterable – tập hợp dữ liệu input;
  • r – số phần tử được chọn ra từ tập dữ liệu input, mặc định là None, tức là r=len(iterable)

Example:

>>> from itertools import permutations
>>> print(list(permutations("ABC",2)))
[('A', 'B'), ('A', 'C'), ('B', 'A'),('B', 'C'), ('C', 'A'),('C', 'B')]
>>> print(list(permutations("ABC")))
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'),('B', 'C', 'A'), ('C', 'A', 'B'),('C', 'B', 'A')]

itertools.combinations()

Được dùng để thực hiện phép tổ hợp từ một tập hợp.

Function:

iterator = itertools.combinations(iterable, r)

Trong đó:

  • iterable – tập hợp dữ liệu input;
  • r – số phần tử được chọn ra từ tập hợp.

Example:

>>> from itertools import combinations
>>> print(list(combinations("ABC",2)))
[('A', 'B'), ('A', 'C'), ('B', 'C')]

itertools.combinations_with_replacement()

Được dùng để thực hiện phép tổ hợp các trùng lặp từ một tập hợp.

Function:

iterator = itertools.combinations_with_replacement(iterable, r)

Trong đó:

  • iterable – tập hợp dữ liệu input;
  • r – số phần tử được chọn ra từ tập hợp.

Example:

>>> from itertools import combinations_with_replacement
>>> print(list(combinations_with_replacement("ABC",2)))
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]

itertools.compress()

Chọn ra các phần tử của tập hợp được đánh dấu trước.

Function:

compressObject = itertools.compress(data, selector)

Trong đó:

  • data – tập hợp dữ liệu input;
  • selector – chứa các giá trị đánh dấu các điểm dữ liệu được chọn.

Example:

>>> from itertools import compress
>>> print(list(compress("ABCD",[1,0,1,0])))
['A', 'C']

itertools.groupby()

Được sử dụng để gom nhóm dữ liệu theo keyword.

Function:

iterator = itertools.groupby(iterable, key=None)

Trong đó:

  • iterable – tập hợp dữ liệu input;
  • key – phần tử được chọn để gom nhóm.

Example:

>>> from itertools import groupby
>>> instruments = [("gun", "police"), ("pen", "student"), ("pencil", "student"), ("ruler", "student"), ("screwdrivers", "engineer"), ("pliers", "engineer")]
>>> for key, group in groupby(instruments, lambda x: x[1]):
...    print(key)
...    print(list(group))
...
police
[("gun", "police")]
student
[("pen", "student"), ("pencil", "student"), ("ruler", "student")]
engineer
[("screwdrivers", "engineer"), ("pliers", "engineer")]

SUMMARY

Qua bài viết này chúng ta đã tìm hiểu về một số function rất hữu dụng của bộ thư viện itertools khi xử lý dữ liệu. Cảm ơn các bạn đã theo dõi bài viết.

Thân ái và quyết thắng.

Reference:
[1] itertools Standard Library.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s