Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python lấy tất cả tổ hợp cặp (pairwise) từ danh sách

Để sinh tất cả các cặp có thứ tự (ordered pairs) từ các phần tử khác nhau trong danh sách, ta dùng hai vòng lặp lồng nhau và kiểm tra chỉ số khác nhau.

Ví dụ

Minh họa:

my_list = [15, "John", 2, "Will", 53, 'Rob']
print("Danh sách:")
print(my_list)
my_result = []
for i in range(len(my_list)):
    for j in range(len(my_list)):
        if i != j:
            my_result.append((my_list[i], my_list[j]))
print("Kết quả:")
print(my_result)

Kết quả

Danh sách: [15, 'John', 2, 'Will', 53, 'Rob']
Kết quả: [(15, 'John'), (15, 2), (15, 'Will'), (15, 53), (15, 'Rob'), ('John', 15), ('John', 2), ('John', 'Will'), ('John', 53), ('John', 'Rob'), (2, 15), (2, 'John'), (2, 'Will'), (2, 53), (2, 'Rob'), ('Will', 15), ('Will', 'John'), ('Will', 2), ('Will', 53), ('Will', 'Rob'), (53, 15), (53, 'John'), (53, 2), (53, 'Will'), (53, 'Rob'), ('Rob', 15), ('Rob', 'John'), ('Rob', 2), ('Rob', 'Will'), ('Rob', 53)]

Giải thích

  • Khởi tạo list rỗng.
  • Hai vòng lặp qua chỉ số, nếu i != j thì thêm cặp (my_list[i], my_list[j]).
  • Kết quả là hoán vị 2 (permutations) của danh sách.