โจทย์: ให้ลิสต์ของ Sublist ต้องการดึงสมาชิกตัวแรก (หรือ Index ใดๆ) จาก Sublist แรก ถึง N
Input/Output
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] N = 3 Output: ['Python', 'C', 'Javascript'] # สมาชิกตัวแรกของ 3 sublist แรก
วิธีที่ 1: ใช้ For Loop
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]
N = 3
desired_elements = []
for i in range(N):
desired_elements.append(random_list[i][0])
print(desired_elements)
['Python', 'C', 'Javascript']
วิธีที่ 2: ใช้ List Comprehension + Slicing (แนะนำ)
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] N = 3 desired_elements = [sublist[0] for sublist in random_list[:N]] print(desired_elements)
['Python', 'C', 'Javascript']
วิธีที่ 3: ใช้ Built-in Functions (map, itemgetter, islice)
ใช้ Functional programming style
import operator import itertools random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']] N = 3 desired_elements = list(map(operator.itemgetter(0), itertools.islice(random_list, N))) print(desired_elements)
['Python', 'C', 'Javascript']
สรุป: วิธีที่ 2 (List comprehension + slicing) อ่านง่ายที่สุดและเป็น Pythonic วิธีที่ 3 ใช้เมื่อต้องการ lazy evaluation หรือทำงานกับข้อมูลขนาดใหญ่