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

Tích tích lũy cột Tuple lồng nhau trong Python


Nếu cần tìm tích tích lũy (cumulative column product) của một nested tuple (tuple lồng nhau), có thể dùng phương thức zip và biểu thức generator lồng nhau (nested generator expression).

Generator là cách đơn giản tạo iterator. Tự động triển khai lớp với __iter__() và __next__(), theo dõi trạng thái nội bộ và ném StopIteration khi không còn giá trị.

Phương thức zip nhận các iterable, gộp thành tuple và trả về kết quả.

Dưới đây là ví dụ minh họa:

Ví dụ

tuple_1 = ((11, 23), (41, 25), (22, 19))
tuple_2 = ((60, 73), (31, 91), (14, 14))

print("Tuple đầu tiên là:")
print(tuple_1)
print("Tuple thứ hai là:")
print(tuple_2)

my_result = tuple(tuple(a * b for a, b in zip(tup_1, tup_2))
                  for tup_1, tup_2 in zip(tuple_1, tuple_2))

print("Tuple sau khi nhân:")
print(my_result)

Kết quả

Tuple đầu tiên là:
((11, 23), (41, 25), (22, 19))
Tuple thứ hai là:
((60, 73), (31, 91), (14, 14))
Tuple sau khi nhân:
((660, 1679), (1271, 2275), (308, 266))

Giải thích

  • Định nghĩa hai tuple of tuples (nested tuples) và hiển thị trên bảng điều khiển.
  • Ghép hai tuple, duyệt qua, nhân các giá trị tương ứng.
  • Chuyển đổi thành tuple, gán cho biến.
  • Hiển thị biến này làm đầu ra trên bảng điều khiển.