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

Python – Tìm giá trị lớn nhất K trong list dựa trên list khác

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)