There is names for these problems human or natural sort.
@DeaD_EyE solution look fine.
There also libraries for this natsort.
Testing
@DeaD_EyE solution look fine.
There also libraries for this natsort.
Testing
natsort
with code from DeaD_EyE.# pip install natsort >>> from natsort import natsorted >>> >>> natsorted(lst) ['pdf_1_page1', 'pdf_1_page2', 'pdf_1_page3', 'pdf_1_page4', 'pdf_2_page1', 'pdf_2_page2', 'pdf_2_page3', 'pdf_2_page4', 'pdf_3_page1', 'pdf_3_page2', 'pdf_3_page3', 'pdf_3_page4', 'pdf_4_page1', 'pdf_4_page2', 'pdf_4_page3', 'pdf_4_page4', 'pdf_5_page1', 'pdf_5_page2', 'pdf_5_page3', 'pdf_5_page4', 'pdf_6_page1', 'pdf_6_page2', 'pdf_6_page3', 'pdf_6_page4', 'pdf_7_page1', 'pdf_7_page2', 'pdf_7_page3', 'pdf_7_page4', 'pdf_8_page1', 'pdf_8_page2', 'pdf_8_page3', 'pdf_8_page4', 'pdf_9_page1', 'pdf_9_page2', 'pdf_9_page3', 'pdf_9_page4', 'pdf_10_page1', 'pdf_10_page2', 'pdf_10_page3', 'pdf_10_page4']