พิจารณาสองรายการ องค์ประกอบในรายการที่สองคือตัวเลขที่ต้องถือเป็นตำแหน่งดัชนีสำหรับองค์ประกอบของรายการแรก สำหรับสถานการณ์นี้ เรามีโปรแกรมหลามด้านล่าง
พร้อมแผนที่และไอเทม
เราสามารถใช้ 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']