Computer >> Máy Tính >  >> Lập trình >> Python

Tìm các phần tử của danh sách theo chỉ số trong Python

Hãy xem xét hai danh sách. Các phần tử trong danh sách thứ hai là các số cần được coi là vị trí chỉ mục cho các phần tử của danh sách đầu tiên. Đối với trường hợp này, chúng tôi có các chương trình python bên dưới.

Với bản đồ và địa lý

Chúng ta có thể sử dụng phương pháp ma thuật địa lý được sử dụng để truy cập các mục trong danh sách. Chúng tôi có thể sử dụng nó cùng với hàm bản đồ, để chúng tôi nhận được kết quả từ danh sách đầu tiên, lấy các phần tử từ danh sách thứ hai làm chỉ số của nó.

Ví dụ

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list(map(listA.__getitem__, listB))

print("Result :",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']

Với itemgetter

Mô-đun điều hành cung cấp phương pháp mục tiêu có thể được sử dụng cho mục đích này. Trong chương trình bên dưới, chúng tôi mở rộng danh sách thứ hai dưới dạng các chỉ số và áp dụng hàm mục tiêu để lấy các phần tử tương ứng từ danh sách.

Ví dụ

from operator import itemgetter

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list((itemgetter(*listB)(listA)))

print("Result :",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']

Với numpy

Thư viện numpy có thể đạt được điều này bằng cách chỉ tạo một mảng lấy hai danh sách làm tham số đầu vào. Kết quả một lần nữa được chuyển đổi thành một danh sách.

Ví dụ

import numpy as np

listA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
listB = [0, 1,3]

print("Given list A:",listA)
print("Given list B:",listB)


res=list(np.array(listA)[listB])

print("Result :",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list A: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Given list B: [0, 1, 3]
Result : ['Mon', 'Tue', 'Thu']