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

Python – Tạo cặp tích chéo (Cross Pattern Pairs) từ hai danh sách

Tạo danh sách các tích chéo (cross product) giữa hai danh sách: nhân mỗi phần tử list 1 với mỗi phần tử list 2. Sử dụng list comprehension lồng.

Mã nguồn


my_list_1 = [14, 35, 26]
my_list_2 = [36, 24, 12]

print("List 1:", my_list_1)
print("List 2:", my_list_2)

# Tích chéo: i * j với i từ list_2, j từ list_1
result = [i * j for j in my_list_1 for i in my_list_2]

print("Tích chéo:", result)

Kết quả

List 1: [14, 35, 26]
List 2: [36, 24, 12]
Tích chéo: [504, 336, 168, 1260, 840, 420, 936, 624, 312]

Giải thích

  • List comprehension lồng: for j in my_list_1 for i in my_list_2.
  • Thứ tự: outer loop j (list_1), inner loop i (list_2).
  • Tương đương:

result = []
for j in my_list_1:
    for i in my_list_2:
        result.append(i * j)
  • Kết quả 3×3=9 phần tử: 36×14, 24×14, 12×14, 36×35, 24×35, 12×35, 36×26, 24×26, 12×26.

Ứng dụng

Tạo ma trận nhân, tổ hợp tham số, grid search, phép Descartes product.

Thư viện itertools


import itertools
result = [i*j for i, j in itertools.product(my_list_2, my_list_1)]