Как отсортировать список строк в python, игнорируя цифры в этих строках? - PullRequest
0 голосов
/ 15 января 2020

Я хотел бы отсортировать список строк в python, однако цифры, включенные в эти строки, должны быть опущены сценарием сортировки. Пример такого списка можно найти ниже:

list = ['aaa', '1aaa', 'ab c', '2ab c', '3ab c', 'b2bb' , 'b3bb']

Я нашел один topi c в стеке, а именно этот , но это не ответило на мой вопрос. После дополнительных исследований я нашел эту страницу , но моя реализация не работает:

import re 

def numbers_sort(file):
    lines = []
    lines += [line for line in open(file).readlines()]
    print(''.join(sorted(lines,  key=lambda key: [x for x in re.sub('^[-+]?[0-9]+$', '')])),end="")

Я также пытался использовать isdi git () в качестве ключа отсортированной функции Однако безрезультатно.

Спасибо за помощь.

1 Ответ

1 голос
/ 15 января 2020

Ключ-аргумент ожидает функцию, которая преобразует одну строку.

def numbers_sort(filename):
    with open(filename) as lines:
        print(''.join(sorted(lines,  key=lambda s: re.sub('[-+]?[0-9]+', '', s))), end="")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...