Để 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 != jthì thêm cặp(my_list[i], my_list[j]). - Kết quả là hoán vị 2 (permutations) của danh sách.