Lọc các tuple trong danh sách mà tích của tất cả phần tử lớn hơn ngưỡng K. Sử dụng hàm helper và list comprehension.
Mã nguồn
def tuples_product(index):
my_result = 1
for element in index:
my_result *= element
return my_result
my_list = [(14, 25, 17), (2, 3, 5), (81, 42, 21), (6, 2, 1)]
print("Danh sách tuple:", my_list)
K = 15
print("K =", K)
my_result = [index for index in my_list if tuples_product(index) > K]
print("Tuple có tích >", K, ":", my_result)
Kết quả
Danh sách tuple: [(14, 25, 17), (2, 3, 5), (81, 42, 21), (6, 2, 1)] K = 15 Tuple có tích > 15 : [(14, 25, 17), (2, 3, 5), (81, 42, 21)]
Giải thích
- Hàm
tuples_producttính tích các phần tử trong tuple. - (14,25,17): 14×25×17 = 5950 > 15 ✓
- (2,3,5): 2×3×5 = 30 > 15 ✓
- (81,42,21): 81×42×21 = 71442 > 15 ✓
- (6,2,1): 6×2×1 = 12 ≤ 15 ✗
Cách ngắn gọn (math.prod - Python 3.8+)
import math
my_result = [t for t in my_list if math.prod(t) > K]
Hoặc functools.reduce(operator.mul, t, 1) cho Python cũ hơn.