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

In n hoán vị riêng biệt đầu tiên của chuỗi bằng itertools trong Python

Hoán vị của một số đối tượng là sự thể hiện cách các bản cập nhật có thể hiện diện theo các trình tự khác nhau. Nhưng đôi khi chúng ta có thể có hai đối tượng trong một loạt các đối tượng giống hệt nhau. Trong trường hợp đó, hai chuỗi sẽ trở nên bằng nhau. Trong bài viết này, bạn sẽ thấy cách chỉ biểu diễn các chuỗi duy nhất từ ​​một danh sách các đối tượng nhất định.

Mô-đun itertools có một phương thức gọi là hoán vị giúp chúng ta đạt được điều này. Để có được các hoán vị duy nhất, chúng tôi sử dụng phương pháp set chỉ lưu trữ các phần tử riêng biệt. Nhưng trước đó, chúng ta lấy các phần tử theo thứ tự đã sắp xếp bằng cách sử dụng phương pháp đã sắp xếp.

Trong chương trình dưới đây K là số phần tử duy nhất tối đa mà chúng tôi muốn hiển thị trong toàn bộ các hoán vị duy nhất có thể có. Sử dụng vòng lặp while, chúng tôi tiếp tục thêm phần tử duy nhất vào danh sách cuối cùng mà chúng tôi chỉ muốn hiển thị nếu nó chưa được thêm vào đặt.

Ví dụ

from itertools import permutations
def permutation_value(str, k):
   s = sorted(list(str))
   p = permutations(s)
   m = 0
   set_1 = set()
   str = ''
   while m < k:
      str = ''.join(p.__next__())
      if str not in set_1:
         set_1.add(str)
         print(str)
         m += 1
str = "xyxxz"
i = 12
permutation_value(str, i)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

xxxyz
xxxzy
xxyxz
xxyzx
xxzxy
xxzyx
xyxxz
xyxzx
xyzxx
xzxxy
xzxyx
xzyxx