Thường thì chúng ta cần tìm chỉ mục nơi giá trị cụ thể nằm. Có nhiều phương pháp để đạt được điều đó, sử dụng index() v.v. Nhưng đôi khi cần tìm tất cả các chỉ mục của một giá trị cụ thể trong trường hợp nó xuất hiện nhiều lần trong danh sách.
Ví dụ
# sử dụng filter()
# khởi tạo danh sách
test_list = [1, 3, 4, 3, 6, 7]
# in danh sách ban đầu
print("Danh sách gốc: " + str(test_list))
# sử dụng filter()
# để tìm chỉ mục cho 3
res_list = list(filter(lambda x: test_list[x] == 3, range(len(test_list))))
# in danh sách kết quả
print("Danh sách chỉ mục mới: " + str(res_list))
# sử dụng enumerate()
# khởi tạo danh sách
test_list = [1, 3, 4, 3, 6, 7]
# in danh sách ban đầu
print("Danh sách gốc: " + str(test_list))
# sử dụng enumerate()
# để tìm chỉ mục cho 3
res_list = [i for i, value in enumerate(test_list) if value == 3]
# in danh sách kết quả
print("Danh sách chỉ mục mới: " + str(res_list))
# sử dụng list comprehension
# khởi tạo danh sách
test_list = [1, 3, 4, 3, 6, 7]
# in danh sách ban đầu
print("Danh sách gốc: " + str(test_list))
# sử dụng list comprehension
# để tìm chỉ mục cho 3
res_list = [i for i in range(len(test_list)) if test_list[i] == 3]
# in danh sách kết quả
print("Danh sách chỉ mục mới: " + str(res_list))
# sử dụng phương pháp đơn giản
# khởi tạo danh sách
test_list = [1, 3, 4, 3, 6, 7]
# in danh sách ban đầu
print("Danh sách gốc: " + str(test_list))
# sử dụng phương pháp đơn giản
# để tìm chỉ mục cho 3
res_list = []
for i in range(0, len(test_list)):
if test_list[i] == 3:
res_list.append(i)
# in danh sách kết quả
print("Danh sách chỉ mục mới: " + str(res_list))
Đầu ra
Danh sách gốc: [1, 3, 4, 3, 6, 7] Danh sách chỉ mục mới: [1, 3] Danh sách gốc: [1, 3, 4, 3, 6, 7] Danh sách chỉ mục mới: [1, 3] Danh sách gốc: [1, 3, 4, 3, 6, 7] Danh sách chỉ mục mới: [1, 3] Danh sách gốc: [1, 3, 4, 3, 6, 7] Danh sách chỉ mục mới: [1, 3]