Khi cần lấy chỉ mục của từng phần tử của một danh sách trong danh sách khác, dùng vòng lặp đơn giản và thuộc tính enumerate kết hợp phương thức setdefault. Cũng dùng list comprehension và phương thức get.
Ví dụ
Minh họa dưới đây:
my_list = [14, 52, 23, 47, 18, 23, 12, 54, 43, 22, 28, 13]
print("Danh sách là:")
print(my_list)
my_list_2 = [17, 52, 13]
print("Danh sách thứ hai là:")
print(my_list_2)
element_indices = dict()
for index, value in enumerate(my_list):
element_indices.setdefault(value, []).append(index)
my_result = [element_indices.get(index, [None]) for index in my_list_2]
print("Kết quả là:")
print(my_result)
Kết quả
Danh sách là: [14, 52, 23, 47, 18, 23, 12, 54, 43, 22, 28, 13] Danh sách thứ hai là: [17, 52, 13] Kết quả là: [[None], [1], [11]]
Giải thích
- Định nghĩa danh sách số nguyên và hiển thị ra console.
- Định nghĩa danh sách số nguyên khác và hiển thị ra console.
- Tạo dictionary rỗng.
- Lặp qua danh sách đầu tiên dùng
enumerate. - Dùng phương thức
setdefaultgán giá trị cho phần tử. - Thêm vào dictionary rỗng.
- Dùng list comprehension lặp qua các phần tử và phương thức
getlấy giá trị chỉ mục cho phần tử trong danh sách thứ hai. - Lưu vào list, gán vào biến.
- List này hiển thị là đầu ra trên console.