Khi cần tìm giá trị lớn nhất từ list 1 tại các vị trí mà list 2 có giá trị bằng K, ta dùng vòng lặp, append() và max().
Ví dụ
my_list_1 = [62, 25, 32, 98, 75, 12, 46, 53]
my_list_2 = [91, 42, 48, 76, 23, 17, 42, 83]
print("List 1:", my_list_1)
print("List 2:", my_list_2)
my_list_1.sort()
my_list_2.sort()
print("List 1 sorted:", my_list_1)
print("List 2 sorted:", my_list_2)
K = 42
print("K =", K)
my_result = []
for index in range(len(my_list_1)):
if my_list_2[index] == K:
my_result.append(my_list_1[index])
my_result = max(my_result)
print("Kết quả (max của list 1 tại vị trí list 2 == K):")
print(my_result)
Kết quả đầu ra
List 1: [62, 25, 32, 98, 75, 12, 46, 53] List 2: [91, 42, 48, 76, 23, 17, 42, 83] List 1 sorted: [12, 25, 32, 46, 53, 62, 75, 98] List 2 sorted: [17, 23, 42, 42, 48, 76, 83, 91] K = 42 Kết quả (max của list 1 tại vị trí list 2 == K): 46
Giải thích
- CẢNH BÁO: Sắp xếp riêng từng list làm mất đi mối tương quan index gốc!
- Code ví dụ sắp xếp cả hai list → index không còn tương ứng dữ liệu gốc.
- Logic đúng: KHÔNG sắp xếp, duyệt index gốc, lấy list_1[i] khi list_2[i] == K.
- Ví dụ đúng: list_2[1]=42, list_2[6]=42 → list_1[1]=25, list_1[6]=46 → max = 46.
Code sửa:
my_result = [my_list_1[i] for i in range(len(my_list_1)) if my_list_2[i] == K]
print(max(my_result) if my_result else None)