ใช้ Lambda function (Anonymous function) ร่วมกับ List Comprehension จัดเรียงลิสต์ให้ตัวเลขลบอยู่หน้า ตัวเลขบวกและศูนย์อยู่หลัง
อัลกอริทึม
- กรองตัวเลข < 0 (ลบ)
- กรองตัวเลข ≥ 0 (บวกและศูนย์)
- รวมลิสต์ทั้งสองด้วย +
ตัวอย่างโค้ด Python
# เริ่มต้นลิสต์ arr = [3, 4, -2, -10, 23, 20, -44, 1, -23] # Lambda expression rearrange_numbers = lambda arr: [x for x in arr if x < 0] + [x for x in arr if x >= 0] # เรียกใช้ new_arr = rearrange_numbers(arr) print(new_arr)
ผลลัพธ์
[-2, -10, -44, -23, 3, 4, 23, 20, 1]
คำอธิบาย
lambda arr: ...สร้างฟังก์ชันไร้ชื่อรับพารามิเตอร์ arr[x for x in arr if x < 0]List comprehension กรองค่าลบ[x for x in arr if x >= 0]List comprehension กรองค่าบวกและศูนย์+รวมลิสต์ (concatenation)
ข้อควรระวัง: Lambda เหมาะสำหรับอ็อปเปอเรชันสั้นๆ สำหรับตรรกะซับซ้อนควรใช้ def แทน