Khi cần kiểm tra các phần tử tại chỉ số cụ thể của list 1 có bằng list 2 và có trong check_list không, ta dùng vòng lặp và biến boolean.
Ví dụ
my_list_1 = [69, 96, 23, 57, 13, 75, 13]
my_list_2 = [68, 21, 69, 23, 49, 35, 73]
check_list = [66, 89, 69]
print("List 1:", my_list_1)
print("List 2:", my_list_2)
print("Check list:", check_list)
my_list_1.sort()
my_list_2.sort()
check_list.sort()
print("List 1 sorted:", my_list_1)
print("List 2 sorted:", my_list_2)
print("Check list sorted:", check_list)
my_result = True
for index, element in enumerate(my_list_1):
if my_list_1[index] != my_list_2[index] and element in check_list:
my_result = False
break
if my_result:
print("Các phần tử tại chỉ số tương ứng bằng nhau (đối với check_list)")
else:
print("Các phần tử tại chỉ số KHÔNG bằng nhau")
Kết quả đầu ra
List 1: [69, 96, 23, 57, 13, 75, 13] List 2: [68, 21, 69, 23, 49, 35, 73] Check list: [66, 89, 69] List 1 sorted: [13, 13, 23, 57, 69, 75, 96] List 2 sorted: [21, 23, 35, 49, 68, 69, 73] Check list sorted: [66, 69, 89] Các phần tử tại chỉ số KHÔNG bằng nhau
Giải thích
- Logic: Nếu phần tử của list_1 ở index i khác list_2[i] VÀ phần tử đó có trong check_list → False.
- Sắp xếp trước khi so sánh làm thay đổi vị trí → logic trở nên khó hiểu.
- Không sắp xếp: so sánh index 0: 69 vs 68 (khác), 69 có trong check_list → False ngay.
Lưu ý: Sắp xếp độc lập làm mất ý nghĩa so sánh theo chỉ số. Chỉ so sánh khi thứ tự có ý nghĩa (time series, paired data).