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

Python – จัดเรียงรายการสตริงที่กำหนดตามส่วนตัวเลขของสตริง


เมื่อจำเป็นต้องจัดเรียงรายการสตริงที่กำหนดตามส่วนตัวเลขของสตริง นิพจน์ทั่วไปและเมธอด '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"

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

  • นอกเมธอด รายการสตริงจะถูกกำหนดและแสดงบนคอนโซล

  • รายการถูกจัดเรียงตามคีย์ตามวิธีการที่กำหนดไว้ก่อนหน้านี้

  • รายการนี้จะแสดงเป็นเอาต์พุตบนคอนโซล