Str1=["Josephine","Joseph smith"]
Josephineが最初に来るはずですが、スペースのためにJoseph smithが先に来ます。Pythonの空白を無視して文字列のリストをソートするには?
Str1=["Josephine","Joseph smith"]
Josephineが最初に来るはずですが、スペースのためにJoseph smithが先に来ます。Pythonの空白を無視して文字列のリストをソートするには?
あなたが記述していることである:
>>> Str1 = ['Josephine', 'Joseph smith']
>>> sorted(Str1)
['Joseph smith', 'Josephine']
あなたの文字列の比較は、空白を無視するためにlist.sort
またはsorted
にkey
を提供することができます。
>>> sorted(Str1, key=lambda x: ''.join(x.split()))
['Josephine', 'Joseph smith']
空白を取り除くためにかなり畳み込まれた方法は、望ましくないかもしれない改行文字を置き換えます。単に 'replace()'を使わないのはなぜですか? –
@Chris_Rands [空白](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( ''、 ''))'は大丈夫です –
@ZeroPiraeusあなたは正しいです!私の答えを編集しました、ありがとう! – neverwalkaloner
重複はありません:それは空白を削除する方法が、ソートキーの基礎としてそれを使用しない方法を示します。 –