Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาองค์ประกอบของรายการตามดัชนีใน Python


พิจารณาสองรายการ องค์ประกอบในรายการที่สองคือตัวเลขที่ต้องถือเป็นตำแหน่งดัชนีสำหรับองค์ประกอบของรายการแรก สำหรับสถานการณ์นี้ เรามีโปรแกรมหลามด้านล่าง

พร้อมแผนที่และไอเทม

เราสามารถใช้ getitem magic method เพื่อเข้าถึงรายการ เราสามารถใช้ร่วมกับฟังก์ชันแผนที่ เพื่อให้เราได้ผลลัพธ์จากรายการแรกซึ่งนำองค์ประกอบจากรายการที่สองมาเป็นตัวบ่งชี้

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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

ด้วย itemgetter

โมดูลตัวดำเนินการจัดเตรียมวิธี itemgetter ซึ่งสามารถใช้เพื่อจุดประสงค์นี้ ในโปรแกรมด้านล่าง เราขยายรายการที่สองเป็นดัชนีและใช้ฟังก์ชัน itemgetter เพื่อรับองค์ประกอบที่เกี่ยวข้องจากรายการ

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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

ด้วยความอ้วน

ไลบรารี numpy สามารถทำได้โดยเพียงแค่สร้างอาร์เรย์โดยใช้สองรายการเป็นพารามิเตอร์อินพุต ผลลัพธ์จะถูกแปลงเป็นรายการอีกครั้ง

ตัวอย่าง

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)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

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