Str1=["Josephine","Joseph smith"]
Жозефина должна на первом месте, но из-за космоса на первом месте стоит Джозеф Куз.Как отсортировать список строк, игнорирующих пробелы в python?
Str1=["Josephine","Joseph smith"]
Жозефина должна на первом месте, но из-за космоса на первом месте стоит Джозеф Куз.Как отсортировать список строк, игнорирующих пробелы в python?
Что вы описываете:
>>> Str1 = ['Josephine', 'Joseph smith']
>>> sorted(Str1)
['Joseph smith', 'Josephine']
Вы можете обеспечить key
к list.sort
или sorted
, чтобы сделать ваши сравнения строк игнорируют пробелы:
>>> sorted(Str1, key=lambda x: ''.join(x.split()))
['Josephine', 'Joseph smith']
Скорее запутанный способ удаления пробелов, также заменит символы новой строки, которые могут быть нежелательными, почему бы просто не использовать 'replace()'? –
@Chris_Rands [whitespace] (https://en.wikipedia.org/wiki/Whitespace_character) включает в себя символы новой строки (и вкладки), и именно этот вопрос явно просит игнорировать в заголовке. –
@ZeroPiraeus Хорошо, я согласен –
Вы передаете в качестве ключа сортировки, который заменяет весь пробел с пустой строкой:
Str1.sort(key=lambda k: k.replace(' ', ''))
Вы можете сделать это следующим образом:
l = sorted(l, key=lambda x:x.replace(' ', ''))
Просто 'sorted (my_string, key = lambda x: x.replace ('', ''))' is fine –
@ZeroPiraeus вы правы! Отредактировал мой ответ, спасибо! – neverwalkaloner
Это не дубликат: он показывает, как удалить пробелы, но не так, как использовать его в качестве основы для ключа сортировки. –