Computer >> Máy Tính >  >> Lập trình >> Python

Hoán vị và Kết hợp trong Python?

Trong phần này, chúng ta sẽ học cách tìm hoán vị và kết hợp của một chuỗi đã cho bằng ngôn ngữ lập trình python.

Một trong những ưu điểm chính của python so với ngôn ngữ lập trình khác là nó đi kèm với bộ thư viện khổng lồ.

Chúng tôi sẽ sử dụng gói có sẵn python để tìm hoán vị và các kết hợp của một trình tự nhất định.

Thuật toán tìm Hoán vị và tổ hợp

  • Bước 1 :Nhập gói yêu cầu. Bước đầu tiên là nhập gói yêu cầu, vì chúng tôi sẽ sử dụng gói itertools, vì vậy chúng tôi chỉ cần nhập gói bằng cách sử dụng.

>>> import itertools
>>>
  • Bước 2 :Nhận tất cả hoán vị và kết hợp của một chuỗi. Bước thứ hai là nhập danh sách các chuỗi / mục làm đầu vào sẽ trả về tất cả hoán vị và kết hợp ở dạng danh sách các bộ giá trị.

  • Chúng tôi cũng có thể đặt độ dài của hoán vị và kết hợp.

  • Bước 3 :In kết quả Bước cuối cùng là in tất cả các hoán vị và tổ hợp của tập hợp các chuỗi. Chúng ta có thể sử dụng hàm vòng lặp để in kết quả.

Hoán vị

Hãy tìm hoán vị của danh sách ba mục.

Ví dụ 1

from itertools import permutations

seq = permutations(['a','b','c'])

for p in list(seq):
   print(p)

Kết quả

('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')

Ví dụ 2:

Tìm hoán vị bằng cách xác định độ dài của hoán vị.

from itertools import permutations

seq = permutations(['p', 'y', 't', 'h', 'o', 'n'], 2)

for p in list(seq):
   print(p)

Kết quả

('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'p')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 'p')
('t', 'y')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'p')
('h', 'y')
('h', 't')
('h', 'o')
('h', 'n')
('o', 'p')
('o', 'y')
('o', 't')
('o', 'h')
('o', 'n')
('n', 'p')
('n', 'y')
('n', 't')
('n', 'h')
('n', 'o')

Kết hợp

Hãy tìm sự kết hợp của một chuỗi bằng python.

Ví dụ 1:Xác định độ dài của kết hợp

#Import itertools package
from itertools import combinations

#Getting all combination of a particular length.
combi = combinations(['p', 'y', 't', 'h', 'o', 'n'], 5)

#Print the list of combinations

for c in list(combi):
   print(c)

Kết quả

('p', 'y', 't', 'h', 'o')
('p', 'y', 't', 'h', 'n')
('p', 'y', 't', 'o', 'n')
('p', 'y', 'h', 'o', 'n')
('p', 't', 'h', 'o', 'n')
('y', 't', 'h', 'o', 'n')

Ví dụ 2:Kết hợp với thay thế

#Import itertools package
from itertools import combinations_with_replacement

#Getting all combination by defining a particular length.
combi = combinations_with_replacement(['p', 'y', 't', 'h', 'o', 'n'], 2)

#Print the list of combinations

for c in list(combi):
   print(c)

Kết quả

('p', 'p')
('p', 'y')
('p', 't')
('p', 'h')
('p', 'o')
('p', 'n')
('y', 'y')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 't')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'h')
('h', 'o')
('h', 'n')
('o', 'o')
('o', 'n')
('n', 'n')