複数の区切られた数値で文字列を並べ替える

緩む

パスのリストがあります。ここでは、類似しているが単純な文字列に簡略化しています。

paths = ['apple10/banana2/carrot1', 'apple10/banana1/carrot2', 'apple2/banana1', 'apple2/banana2', 'apple1/banana1', 'apple1/banana2', 'apple10/banana1/carrot1']

これらのパスは、番号順に並べ替える必要があります。最初の数字(アップル)が検索で最も重要で、次に2番目の数字が続きます。

明らかなかもしれない追加の複雑さの1つは、一部のパスにはデータが含まれる3番目のディレクトリがあり、他のパスにはないということです。

パス構造のMWEは次のようになります。

parent 
|-----apple1 
          |------banana1 
                   |----- data*
          |------banana2 
                   |----- data*
|-----apple2
          |------banana1 
                   |----- data*
          |------banana2 
                   |----- data*
|-----apple10
          |------banana1 
                   |-----carrot1
                            |-----data*
                   |-----carrot2
                            |-----data*
          |------banana2 
                   |----- carrot1
                             |-----data*

必要な出力は次のとおりです。

paths = ['apple1/banana1', 'apple1/banana2', 'apple2/banana1', 'apple2/banana2', 'apple10/banana1/carrot1', 'apple10/banana1/carrot2','apple10/banana2/carrot1']

私はこれを行う方法を見つけるのに苦労しています。数字は2桁になり、2の前に10が来るため、並べ替えは特に機能しません。

文字列のリスト内の単一の数値で機能する別の答えを見てきました。数字が入った文字列を正しく並べ替えるにはどうすればよいですか?私はこれを私の問題に適応させることができませんでした。

どんな援助でも大歓迎です。

特別ではない

パスからすべての数字を抽出するためsortedに使用するカスタムキーを指定して、を試してください。re

import re

>>> sorted(paths, key=lambda x: list(map(int,re.findall("(\d+)", x))))
['apple1/banana1',
 'apple1/banana2',
 'apple2/banana1',
 'apple2/banana2',
 'apple10/banana1/carrot1',
 'apple10/banana1/carrot2',
 'apple10/banana2/carrot1']

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

数千の区切り文字と文字列で数値を並べ替える

複数の区切られたファイルを辞書式に1つの列で、数値で別の列で並べ替えます

スペースで区切られた数値を含む文字列のリストを並べ替える方法は?

'|〜'で区切られた複数のフィールドを含むList <String>を並べ替える方法

他のロケールでコンマ千で区切られた数値を並べ替える方法

ダッシュで区切られた範囲の数値を並べ替える方法は?

ダッシュで区切られた範囲の数値を並べ替える方法は?

複数の区切り文字でファイルを並べ替える方法は?

Swift:複数の区切り文字で区切られた文字列の数値を置き換えます

Java文字列配列を複数の数値で並べ替える

ドットで区切られた数値のリストを特定の並べ替え

ラケット:ドットで区切られた数値を並べ替える方法

スペースで区切られた整数の文字列でリストを並べ替える

複数の列を数値で並べ替える

PysparkとPythonで複数の値を持つ文字列で並べ替える

NodeJSで配列の数値文字列を最高から最低に並べ替える

カンマ区切りの数値を含むRの文字列を並べ替える方法

区切られたアイテムの1行を数値で並べ替えるにはどうすればよいですか?

Lodashで数値文字列の配列を並べ替える

AndroidのArraylistを複数の文字列で並べ替える

bashの区切り文字を使用して列の数値に基づいて並べ替える方法

複数の列から複数の行に数値を並べ替えたり並べ替えたりする方法[4列に固定]?

英数字の文字列を数値部分で並べ替えるためのSQL

ハイフンで区切られた数値ハッシュキーの並べ替え

文字列のリストを数値で並べ替える

Pythonで文字列の数値を並べ替える方法

追加された複数の列を並べ替える方法

テキスト処理:文字列で区切られた日付でリストを並べ替える方法

大文字と小文字を区別せずに複数の列のテキストと数値でデータフレームを並べ替える

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ