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

Python – เรียงตามช่วงรวม


เมื่อจำเป็นต้องจัดเรียงรายการตามช่วง วิธี 'abs', 'sum' และความเข้าใจรายการจะถูกใช้โดยใช้ฟังก์ชัน

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

ตัวอย่าง

def sum_range_incl(my_row):

   return sum([abs(element [1] - element [0]) for element in my_row if element [0] > i and element [0] < j and element [1] > i and element [1] < j])

my_list = [[(12, 4), (55, 10), (11, 16)], [(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 6), (6, 13)]]

print("The list is :")
print(my_list)

i, j = 2, 15

my_list.sort(key=sum_range_incl)

print("The resultant list is :")
print(my_list)

ผลลัพธ์

The list is :
[[(12, 4), (55, 10), (11, 16)], [(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 6), (6, 13)]]
The resultant list is :
[[(42, 14)], [(2, 5), (2, 28), (9, 16)], [(12, 4), (55, 10), (11, 16)], [(12, 6), (6, 13)]]

คำอธิบาย

  • มีการกำหนดเมธอดชื่อ 'sum_range_incl' ซึ่งรับรายการทูเพิลเป็นพารามิเตอร์

  • รายการจะถูกทำซ้ำโดยใช้ความเข้าใจรายการ

  • ความแตกต่างแบบสัมบูรณ์ระหว่างองค์ประกอบที่หนึ่งและองค์ประกอบที่ศูนย์จะถูกกำหนดสำหรับองค์ประกอบทั้งหมดในรายการ และองค์ประกอบที่ศูนย์จะถูกเปรียบเทียบกับจำนวนเต็มเฉพาะ

  • ผลรวมของค่านี้จะถูกส่งกลับเป็นผลลัพธ์ของฟังก์ชัน

  • รายการของทูเพิลถูกกำหนดและแสดงบนคอนโซล

  • ค่าของจำนวนเต็มสองตัวคือ "I" และ "j"

  • รายการถูกจัดเรียงโดยใช้วิธีการจัดเรียงโดยส่งผ่านวิธีที่กำหนดไว้ก่อนหน้านี้เป็นพารามิเตอร์

  • เอาต์พุตจะแสดงบนคอนโซล