u"/"文字が最後になるようにいくつかの辞書キーを並べ替える必要があります。非Unicode文字列を使用する場合、次の関数を使用してこれを実行しました。
>>> L = ["/", "C", "b", "A"]
>>> sorted(L, key=lambda item: item.lower() if item != "/" else tuple())
['A', 'b', 'C', '/']
これは、タプルがPythonの文字列の後にソートされるという事実を使用します(乱用しますか?)。ただし、Unicode文字列はタプルの後にソートされるため、キーがUnicodeの場合は機能しません。したがって、たとえば、
>>> L = [u"/", u"C", u"b", u"A"]
>>> sorted(L, key=lambda item: item.lower() if item != u"/" else tuple())
[u'/', u'A', u'b', u'C']
- Unicodeタイプの後にどのような種類のオブジェクトがソートされますか?
- これを行うためのより良い方法はありますか?