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

ใช้ Lambda Expression จัดเรียงลบ-บวกใน Python

ใช้ Lambda function (Anonymous function) ร่วมกับ List Comprehension จัดเรียงลิสต์ให้ตัวเลขลบอยู่หน้า ตัวเลขบวกและศูนย์อยู่หลัง

อัลกอริทึม

  1. กรองตัวเลข < 0 (ลบ)
  2. กรองตัวเลข ≥ 0 (บวกและศูนย์)
  3. รวมลิสต์ทั้งสองด้วย +

ตัวอย่างโค้ด 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 แทน