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

Truy cập các phần tử tại các chỉ số cho trước trong list Python

Chúng ta có thể truy cập các phần tử riêng lẻ của list bằng cặp ngoặc [] và số chỉ số. Nhưng khi cần truy cập một số chỉ số cụ thể, chúng ta không thể áp dụng phương pháp này. Chúng ta cần các cách tiếp cận dưới đây để xử lý.

Sử dụng hai list

Trong phương pháp này, cùng với list gốc, chúng ta lấy các chỉ số làm một list khác. Sau đó, sử dụng vòng lặp for để lặp qua các chỉ số và cung cấp các giá trị đó cho list chính để lấy giá trị.

Ví dụ

given_list = ["Mon", "Tue", "Wed", "Thu", "Fri"]
index_list = [1, 3, 4]
# In các list
print("Danh sách cho trước : " + str(given_list))
print("Danh sách chỉ số : " + str(index_list))
# Sử dụng list comprehension
res = [given_list[n] for n in index_list]
# Lấy kết quả
print("Danh sách kết quả : " + str(res))

Kết quả

Chạy đoạn code trên cho kết quả sau:

Danh sách cho trước : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Danh sách chỉ số : [1, 3, 4]
Danh sách kết quả : ['Tue', 'Thu', 'Fri']

Sử dụng map và __getitem__

Thay vì sử dụng vòng lặp for như trên, chúng ta cũng có thể dùng map cũng như phương thức __getitem__ để có cùng kết quả.

Ví dụ

given_list = ["Mon", "Tue", "Wed", "Thu", "Fri"]
index_list = [1, 3, 4]
# In các list
print("Danh sách cho trước : " + str(given_list))
print("Danh sách chỉ số : " + str(index_list))
# Sử dụng map và __getitem__
res = list(map(given_list.__getitem__, index_list))
# Lấy kết quả
print("Danh sách kết quả : " + str(res))

Kết quả

Chạy đoạn code trên cho kết quả sau:

Danh sách cho trước : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Danh sách chỉ số : [1, 3, 4]
Danh sách kết quả : ['Tue', 'Thu', 'Fri']