เมื่อจำเป็นต้องจัดเรียงรายการสตริงที่กำหนดตามส่วนตัวเลขของสตริง นิพจน์ทั่วไปและเมธอด 'findall' จะถูกใช้
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
import re def my_num_sort(my_str): return list(map(int, re.findall(r'\d+', my_str)))[0] my_list = ["pyth42on", '14is', '32fun', '89to', 'lea78rn'] print("The list is :") print(my_list) my_list.sort(key=my_num_sort) print("The result is :") print(my_list)
ผลลัพธ์
The list is : ['pyth42on', '14is', '32fun', '89to', 'lea78rn'] The result is : ['14is', '32fun', 'pyth42on', 'lea78rn', '89to']
คำอธิบาย
-
แพ็คเกจที่จำเป็นจะถูกนำเข้าสู่สภาพแวดล้อม
-
มีการกำหนดวิธีการที่ใช้สตริงเป็นพารามิเตอร์
-
โดยใช้วิธี "findall" เพื่อค้นหารูปแบบที่ตรงกับรูปแบบเฉพาะ
-
ค่านี้จะถูกแปลงเป็นสตริงโดยใช้วิธี "map" จากนั้นเปลี่ยนเป็น "list"
-
ค่านี้จะถูกส่งกลับเป็นผลลัพธ์ของเมธอด
-
นอกเมธอด รายการสตริงจะถูกกำหนดและแสดงบนคอนโซล
-
รายการถูกจัดเรียงตามคีย์ตามวิธีการที่กำหนดไว้ก่อนหน้านี้
-
รายการนี้จะแสดงเป็นเอาต์พุตบนคอนโซล