Tom
Tom

Reputation: 81

How to sort this list? python

mylist = [
    'Attendance w1-2 (Responses) - Form Responses 1.csv',
    'Attendance w15-2 (Responses) - Form responses 1.csv',
    'Attendance w5-1 (Responses) - Form Responses 1.csv',
    'Attendance w7-2 (Responses) - Form Responses 1.csv',
    'Attendance w13-2 (Responses) - Form responses 1.csv',
    'Attendance w5-2 (Responses) - Form Responses 1.csv',
    'Attendance w9-2 (Responses) - Form Responses 1.csv',
    'Attendance w4-2 (Responses) - Form Responses 1.csv',
    'Attendance w1-1 (Responses) - Form Responses 1.csv',
    'Attendance w12-2 (Responses) - Form responses 1.csv',
    'Attendance w2-1 (Responses) - Form Responses 1.csv',
    'Attendance w14-2 (Responses) - Form responses 1.csv',
    'Attendance w3-1 (Responses) - Form Responses 1.csv',
    'Attendance w12-1 (Responses) - Form responses 1.csv',
    'Attendance w14-1 (Responses) - Form responses 1.csv',
    'Attendance w8-2 (Responses) - Form Responses 1.csv',
    'Attendance w4-1 (Responses) - Form Responses 1.csv',
    'Attendance w15-1 (Responses) - Form responses 1.csv',
    'Attendance w3-2 (Responses) - Form Responses 1.csv',
    'Attendance w6-2 (Responses) - Form Responses 1.csv',
    'Attendance w7-1 (Responses) - Form Responses 1.csv',
    'Attendance w2-2 (Responses) - Form Responses 1.csv',
    'Attendance w6-1 (Responses) - Form Responses 1.csv',
    'Attendance w11-1 (Responses) - Form Responses 1.csv'
]

How to sort this list based on wx-x?

Upvotes: 0

Views: 56

Answers (1)

Remi Guan
Remi Guan

Reputation: 22282

Do need the output be:

['Attendance w1-1 (Responses) - Form Responses 1.csv',
 'Attendance w1-2 (Responses) - Form Responses 1.csv',
 'Attendance w2-1 (Responses) - Form Responses 1.csv',
 'Attendance w2-2 (Responses) - Form Responses 1.csv',
 'Attendance w3-1 (Responses) - Form Responses 1.csv',
 'Attendance w3-2 (Responses) - Form Responses 1.csv',
 'Attendance w4-1 (Responses) - Form Responses 1.csv',
 'Attendance w4-2 (Responses) - Form Responses 1.csv',
 'Attendance w5-1 (Responses) - Form Responses 1.csv',
 'Attendance w5-2 (Responses) - Form Responses 1.csv',
 'Attendance w6-1 (Responses) - Form Responses 1.csv',
 'Attendance w6-2 (Responses) - Form Responses 1.csv',
 'Attendance w7-1 (Responses) - Form Responses 1.csv',
 'Attendance w7-2 (Responses) - Form Responses 1.csv',
 'Attendance w8-2 (Responses) - Form Responses 1.csv',
 'Attendance w9-2 (Responses) - Form Responses 1.csv',
 'Attendance w11-1 (Responses) - Form Responses 1.csv',
 'Attendance w12-1 (Responses) - Form responses 1.csv',
 'Attendance w12-2 (Responses) - Form responses 1.csv',
 'Attendance w13-2 (Responses) - Form responses 1.csv',
 'Attendance w14-1 (Responses) - Form responses 1.csv',
 'Attendance w14-2 (Responses) - Form responses 1.csv',
 'Attendance w15-1 (Responses) - Form responses 1.csv',
 'Attendance w15-2 (Responses) - Form responses 1.csv']

If so:

import re
mylist.sort(key=lambda x: float('.'.join(re.findall(' w(\d+)\-(\d+) ', x)[0]
)))

Upvotes: 1

Related Questions