Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで数値を含む文字列を正しく並べ替える方法は?


文字列内の数値に基づいて並べ替えるこのタイプの並べ替えは、自然並べ替えまたは人間の並べ替えと呼ばれます。たとえば、テキストがある場合:

['Hello1','Hello12', 'Hello29', 'Hello2', 'Hello17', 'Hello25']

次に、並べ替えられたリストを次のようにします。

['Hello1', 'Hello2','Hello12', 'Hello17', 'Hello25', 'Hello29']

ではない:

['Hello1','Hello12', 'Hello17', 'Hello2', 'Hello25', 'Hello29']

これを行うには、sort()が使用する追加のパラメーターを使用できます。これは、リストのエントリからキーを計算するために呼び出される関数です。正規表現を使用して文字列から数値を抽出し、テキストと数値の両方で並べ替えます。

 import re
 def atoi(text):
    return int(text) if text.isdigit() elsetext
def natural_keys(text):
    return [ atoi(c) for c in re.split('(\d+)',text) ]
 my_list =['Hello1', 'Hello12', 'Hello29', 'Hello2', 'Hello17', 'Hello25']
 my_list.sort(key=natural_keys)
print my_list

これにより、出力が得られます:

['Hello1', 'Hello2','Hello12', 'Hello17', 'Hello25', 'Hello29']

  1. PowerPointフォーマットペインタでテキストをフォーマットする方法

    2つまたは3つの異なるオプションを適用して、PowerPointでテキストの文字列または完全なテキストブロックを何回変更しましたか?フォントサイズを大きくしたり、色を変更したり、斜体にしたりしたかもしれません。そして今、あなたはこれらの同じ変更をさらにいくつかのテキスト文字列に適用したいと思います。 3つすべてを個別に適用するのではなく、自分で簡単に作成し、FormatPainterを使用してこれらの属性すべてを一度に別のテキスト文字列にコピーします。 この記事の説明は、PowerPoint 2019、2016、2013、2010に適用されます。およびPowerPointforMicroso

  2. Android sqliteで文字列番号を並べ替える方法は?

    例に入る前に、Androidのsqliteデータベースが何であるかを知っておく必要があります。 SQLiteは、デバイス上のテキストファイルにデータを保存するオープンソースのSQLデータベースです。 Androidには、SQLiteデータベースの実装が組み込まれています。 SQLiteは、すべてのリレーショナルデータベース機能をサポートしています。このデータベースにアクセスするために、JDBC、ODBCなどのデータベースへの接続を確立する必要はありません。 この例は、Androidsqliteで文字列番号を並べ替える方法を示しています。 ステップ1 − Android Studioで新しい